本文实例讲述了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程序设计有所帮助。