本文实例讲述了PHP实现的构造sql语句类。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
/** * @package Database Class * @author injection (mail:injection.mail@gmail.com) * @version 1.0 */ @ ini_set ( 'display_errors' ,0 ); class DataBase{ private $mDb_host , $mAb_user , $mAb_pwd , $mConn_No ; function DataBase( $Conn_Obj ){ $this ->connectDb( $Conn_Obj ); } function connectDb( $Conn_Obj ){ $this ->mDb_host = $Conn_Obj ->host; $this ->mAd_name = $Conn_Obj ->user; $this ->mAd_pwd = $Conn_Obj ->pwd; $this ->mConn_No = mysql_connect( $this ->mDb_host, $this ->mAd_name, $this ->mAd_pwd ); } function selectDb( $Conn_Obj ){ $this ->mDb_name = $Conn_Obj ->dbname; mysql_select_db( $this ->mDb_name ); } } /** * @package Making Sqls Class exetends Database Class * @author injection (mail:injection.mail@gmail.com) * @version 1.0 */ class MakeSql extends DataBase{ private $mSql ; function MakeSql( $type , $arr_colum_list , $arr_sql_choice ){ $this ->MakeSqlType( $arr_colum_list , $arr_sql_choice ); } //switch make list function MakeSqlType( $type , $arr_colum_list , $arr_sql_choice ){ switch ( $type ){ case 'insert' : return $this ->makeInsert( $arr_colum_list , $arr_sql_choice ); case 'select' : return $this ->makeSelect( $arr_colum_list , $arr_sql_choice ); case 'update' : return $this ->makeUpdate( $arr_colum_list , $arr_sql_choice ); case 'delete' : return $this ->makeDelete( $arr_colum_list , $arr_sql_choice ); } } //make insert function makeInsert( $arr_colum_list , $arr_sql_choice ){ $colum_key = array_keys ( $arr_colum_list ); $colum_value = array_values ( $arr_colum_list ); $this ->mSql = "INSERT INTO " . $arr_sql_choice [ "tbl_name" ]. "( " .join( ',' , $colum_key ). " ) VALUES( '" .join( "','" , $colum_value ). "')" ; return $this ->mSql; } //making select function makeSelect( $arr_colum_list = '*' , $arr_sql_choice ){ $colum_value = array_keys ( $arr_colum_list ); foreach ( $arr_sql_choice as $sql_key => $sql_value ){ if ( strcmp ( $sql_key , 'tbl_name' ) == 0 ){ if ( strcmp ( $arr_colum_list , '*' ) !== 0 ) $this ->mSql = "SELECT " .join( ',' , $colum_value ). " FROM " . $sql_value ; else $this ->mSql = "SELECT * FROM " . $sql_value ; } else if ( strcmp ( $sql_value , '' ) !== 0 ) if ( strcmp ( $sql_key , 'WHERE' ) === 0 && strcmp ( $sql_value , 'colum' ) === 0 ){ foreach ( $arr_colum_list As $colum_key => $colum_value ) $this ->mSql .= "$colum_key = '$colum_value' AND " ; $this ->mSql = rtrim( $this ->mSql, " AND " ); } else $this ->mSql .= " $sql_key " . $sql_value ; } return $this ->mSql; } //making update function makeUpdate( $arr_colum_list , $arr_sql_choice ){ $this ->mSql = "UPDATE " . $arr_sql_choice [ 'tbl_name' ]. " SET " ; foreach ( $arr_colum_list as $colum_key => $colum_value ) $this ->mSql .= "$colum_key = '$colum_value'," ; $this ->mSql = rtrim( $this ->mSql , ',' ); foreach ( $arr_sql_choice as $sql_key => $sql_value ){ if ( strcmp ( $sql_value , '' ) !== 0 && strcmp ( $sql_key , 'tbl_name' ) !==0 && strcmp ( $sql_key , 'ORDER BY' ) !== 0 ) $this ->mSql .= " $sql_key " . $sql_value ; } return $this ->mSql; } //making delete function makeDelete( $arr_colum_list , $arr_sql_choice ){ $this ->mSql = "DELETE FROM " . $arr_sql_choice [ 'tbl_name' ]; foreach ( $arr_sql_choice as $sql_key => $sql_value ){ if ( strcmp ( $sql_key , 'tbl_name' ) !== 0 && strcmp ( $sql_value , '' ) !== 0 ){ $this ->mSql .= " $sql_key " . $sql_value ; } } return $this ->mSql; } } |
希望本文所述对大家PHP程序设计有所帮助。