本文实例讲述了PHP基于单例模式实现的数据库操作基类。分享给大家供大家参考,具体如下:
配置文件:
1
2
3
4
5
6
7
8
|
<?php $db = array ( 'host' => 'localhost' , 'user' => 'root' , 'password' => '' , 'database' => 'test' , ) ?> |
php 数据库基类:
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
<?php class db { public $conn ; public static $sql ; public static $instance =null; private function __construct(){ require_once ( 'db.config.php' ); $this ->conn = mysql_connect( $db [ 'host' ], $db [ 'user' ], $db [ 'password' ]); if (!mysql_select_db( $db [ 'database' ], $this ->conn)){ echo "失败" ; }; mysql_query( 'set names utf8' , $this ->conn); } public static function getInstance(){ if ( is_null (self:: $instance )){ self:: $instance = new db; } return self:: $instance ; } /** * 查询数据库 */ public function select( $table , $condition = array (), $field = array ()){ $where = '' ; if (! empty ( $condition )){ foreach ( $condition as $k => $v ){ $where .= $k . "='" . $v . "' and " ; } $where = 'where ' . $where . '1=1' ; } $fieldstr = '' ; if (! empty ( $field )){ foreach ( $field as $k => $v ){ $fieldstr .= $v . ',' ; } $fieldstr = rtrim( $fieldstr , ',' ); } else { $fieldstr = '*' ; } self:: $sql = "select {$fieldstr} from {$table} {$where}" ; $result =mysql_query(self:: $sql , $this ->conn); $resuleRow = array (); $i = 0; while ( $row =mysql_fetch_assoc( $result )){ foreach ( $row as $k => $v ){ $resuleRow [ $i ][ $k ] = $v ; } $i ++; } return $resuleRow ; } /** * 添加一条记录 */ public function insert( $table , $data ){ $values = '' ; $datas = '' ; foreach ( $data as $k => $v ){ $values .= $k . ',' ; $datas .= "'$v'" . ',' ; } $values = rtrim( $values , ',' ); $datas = rtrim( $datas , ',' ); self:: $sql = "INSERT INTO {$table} ({$values}) VALUES ({$datas})" ; if (mysql_query(self:: $sql )){ return mysql_insert_id(); } else { return false; }; } /** * 修改一条记录 */ public function update( $table , $data , $condition = array ()){ $where = '' ; if (! empty ( $condition )){ foreach ( $condition as $k => $v ){ $where .= $k . "='" . $v . "' and " ; } $where = 'where ' . $where . '1=1' ; } $updatastr = '' ; if (! empty ( $data )){ foreach ( $data as $k => $v ){ $updatastr .= $k . "='" . $v . "'," ; } $updatastr = 'set ' .rtrim( $updatastr , ',' ); } self:: $sql = "update {$table} {$updatastr} {$where}" ; return mysql_query(self:: $sql ); } /** * 删除记录 */ public function delete ( $table , $condition ){ $where = '' ; if (! empty ( $condition )){ foreach ( $condition as $k => $v ){ $where .= $k . "='" . $v . "' and " ; } $where = 'where ' . $where . '1=1' ; } self:: $sql = "delete from {$table} {$where}" ; return mysql_query(self:: $sql ); } public static function getLastSql(){ echo self:: $sql ; } } $db = db::getInstance(); //$list = $db->select('demo',array('name'=>'tom','password'=>'ds'),array('name','password')); //echo $db->insert('demo',array('name'=>'服务器之家','password'=>'123')); //echo $db->update('demo',array("name"=>'xxx',"password"=>'123'),array('id'=>1)); echo $db -> delete ( 'demo' , array ( 'id' => '2' )); db::getLastSql(); echo "<pre>" ; ?> |
希望本文所述对大家PHP程序设计有所帮助。