ホームページ > バックエンド開発 > PHPチュートリアル > SQL文を構築するためのクラス

SQL文を構築するためのクラス

WBOY
リリース: 2016-07-25 09:11:12
オリジナル
1034 人が閲覧しました
    /**
  1. * @package Database Class
  2. * @author インジェクション (mail:injection.mail@gmail.com)
  3. * @version 1.0
  4. */
  5. @ini_set( 'display_errors',0 );
  6. class DataBase{
  7. private $mDb_host,$mAb_user,$mAb_pwd,$mConn_No;
  8. function DataBase( $Conn_Obj ) {
  9. $this->connectDb( $Conn_Obj );
  10. }
  11. function connectDb( $Conn_Obj ){
  12. $this->mDb_host = $Conn_Obj->host;
  13. $this->mAd_name = $Conn_Obj- >user;
  14. $this->mAd_pwd = $Conn_Obj->mConn_No = mysql_connect( $this->mDb_host, $this->mAd_name, $this->mAd_pwd ) ;
  15. }
  16. function selectDb( $Conn_Obj ){
  17. $this->mDb_name = $Conn_Obj->dbname;
  18. mysql_select_db( $this->mDb_name );
  19. }
  20. }
  21. /**
  22. * @package SQL クラスを作成してデータベース クラスを拡張
  23. * @author インジェクション (mail:injection.mail@gmail.com)
  24. * @version 1.0
  25. */
  26. class MakeSql extends DataBase{
  27. private $mSql;
  28. function MakeSql( $type,$arr_colum_list, $arr_sql_choice ){
  29. $this->MakeSqlType( $arr_colum_list, $arr_sql_choice );
  30. }
  31. #switch make list
  32. function MakeSqlType( $type, $arr_colum_list, $arr_sql_choice ){
  33. switch( $type ){
  34. case 'insert':
  35. return $this->makeInsert( $arr_colum_list, $arr_sql_choice );
  36. case 'select':
  37. return $this->makeSelect( $arr_colum_list, $arr_sql_choice );
  38. case 'update':
  39. return $this->makeUpdate( $arr_colum_list, $arr_sql_choice );
  40. case 'delete':
  41. return $this-> makeDelete( $arr_colum_list, $arr_sql_choice );
  42. }
  43. }
  44. #make insert
  45. function makeInsert( $arr_colum_list,$arr_sql_choice ){
  46. $colum_key = array_keys( $arr_colum_list );
  47. $colum_value = array_values( $ arr_colum_list );
  48. $this->mSql = "INSERT INTO ".$arr_sql_choice["tbl_name"]."( ".join( ',' , $colum_key )." ) VALUES( '".join( "','" , $ colum_value )."')";
  49. return $this->mSql;
  50. }
  51. #makeselect
  52. function makeSelect( $arr_colum_list = '*' , $arr_sql_choice ){
  53. $colum_value = array_keys( $arr_colum_list );
  54. foreach( $arr_sql_choice as $sql_key => $sql_value ){
  55. if( strcmp( $sql_key, 'tbl_name' ) == 0 ){
  56. if( strcmp($arr_colum_list, '*' ) !== 0 )
  57. $this->mSql = "SELECT ". join( ',' , $colum_value )." FROM ".$sql_value;
  58. else
  59. $this->mSql = "SELECT * FROM ".$sql_value;
  60. }
  61. else
  62. if( strcmp( $sql_value, '' ) !== 0 )
  63. if(strcmp( $sql_key, 'WHERE' ) === 0 && strcmp( $sql_value, 'colum' ) === 0 ){
  64. foreach($arr_colum_list As $colum_key => $ colum_value )
  65. $this->mSql .= "$colum_key = '$colum_value' AND ";
  66. $this->mSql = rtrim( $this->mSql, " AND " );
  67. }
  68. else
  69. $ this->mSql .= " $sql_key ".$sql_value;
  70. }
  71. return $this->mSql;
  72. }
  73. #更新の作成
  74. function makeUpdate( $arr_colum_list, $arr_sql_choice ){
  75. $this->mSql = "UPDATE ".$arr_sql_choice['tbl_name']." SET ";
  76. foreach( $arr_colum_list as $colum_key => $colum_value )
  77. $this->mSql .= "$colum_key = '$colum_value',";
  78. $this->mSql = rtrim( $this->mSql , ',');
  79. foreach ( $arr_sql_choice as $sql_key => $sql_value ){
  80. if( strcmp( $sql_value, '' ) !== 0 && strcmp( $sql_key, 'tbl_name' ) !==0 && strcmp( $sql_key, 'ORDER BY' ) !== 0 )
  81. $this->mSql .= " $sql_key ".$sql_value;
  82. }
  83. return $this->mSql;
  84. }
  85. #make delete
  86. function makeDelete( $arr_colum_list, $arr_sql_choice ){
  87. $this->mSql = "DELETE FROM ".$arr_sql_choice['tbl_name'];
  88. foreach( $arr_sql_choice as $sql_key => $sql_value ){
  89. if( strcmp( $sql_key, 'tbl_name ' ) !== 0 && strcmp( $sql_value, '' ) !== 0 ){
  90. $this->mSql .= " $sql_key ".$sql_value;
  91. }
  92. }
  93. return $this->mSql ;
  94. }
  95. }
复制代
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート