1 <?php
2 class Db{
3 private $_link = ''; //设置连接信息
4 private $_db_host = ''; //数据库服务器主机
5 private $_db_user = ''; //数据库用户
6 private $_db_pwd = ''; //数据库密码
7 private $_db_name = ''; //所使用数据库的名字
8 private $_db_charset = ''; //设置字符集
9 private $_query = ''; //当前sql指令
10 private $_table_name = ''; //设置数据表
11 private $_table_prefix = ''; //数据表的前缀
12 private $_where = ''; //设置where条件
13 private $_order = ''; //设置排序条件
14 private $_field = ''; //设置选择区域
15 private $_limit = ''; //设置limit条件
16 private $_result = ''; //需要返回的结果
17 private $_fields = ''; //设置操作内容
18
19 function __construct($info_data){
20 if(!is_array($info_data)) exit('请以关联数据的形式设置实例化Db');
21 $this->_db_host = $info_data['db_host'];
22 $this->_db_name = $info_data['db_name'];
23 $this->_db_user = $info_data['db_user'];
24 $this->_db_pwd = $info_data['db_pwd'];
25 $this->_db_charset = $info_data['db_charset'];
26 $this->_table_prefix = $info_data['table_prefix'];
27 //数据库连接
28 $this->_link = @mysql_connect($this->_db_host,$this->_db_user,$this->_db_pwd) or die('数据库连接失败');
29 //设置活动的数据库
30 @mysql_select_db($this->_db_name);
31 //设置输出字符集
32 @mysql_query('set names ' . $this->_db_charset);
33 return $this;
34 }
35
36 /*设置需要操作的tableName*/
37 public function tablename($tableName){
38 if(!empty($tableName)){
39 $this->_table_name = $tableName;
40 }
41 return $this;
42 }
43
44 /*设置where*/
45 public function where($where = ''){
46 if(!empty($where)){
47 $this->_where = ' where ' . $where;
48 }
49 return $this;
50 }
51
52 /*设置排序*/
53 public function order($order = ''){
54 if(!empty($order)){
55 $this->_order = ' order by '.$order;
56 }
57 return $this;
58 }
59
60 /*设置field条件*/
61 public function field($field = ''){
62 if(!empty($field)){
63 //进行重复过滤
64 $opeField = array_unique(explode(',', $field));
65 $field = ' `' . implode('`,`', $opeField) . '` ';
66 $this->_fields = $field;
67 }else{
68 $this->_fields = ' * ';
69 }
70 return $this;
71 }
72
73 /*设置limit条件*/
74 public function limit($limit = ''){
75 if(!empty($limit)){
76 if(is_numeric($limit)){
77 $this->_limit = ' limit 0,' . $limit . ' ';
78 }else{
79 $this->_limit = ' limit ' . $limit;
80 }
81 }
82 return $this;
83 }
84
85 /*增加*/
86 public function add($data){
87 if(!empty($data)){
88 $str = ' set ';
89 foreach ($data as $key => $value) {
90 $str .= "$key=$value,";
91 }
92 $str = rtrim($str,',');
93 $this->_query = mysql_query("insert into ".$this->_table_prefix.$this->_table_name.$str);
94 if($this->_query){
95 return true;
96 }else{
97 return false;
98 }
99 }
100 }
101
102 /*find查找一条数据*/
103 public function find(){
104 $fields = empty($fields)? ' * ' : $this->_fields;
105 $this->_query = mysql_query('select '.$fields.' from '.$this->_table_prefix.$this->_table_name.$this->_where.$this->_order.$this->_limit);
106 if(is_resource($this->_query)){
107 $result = mysql_fetch_assoc($this->_query);
108 if(!empty($result)){
109 return $result;
110 }
111 }
112 //释放内存
113 mysql_free_result($this->_query);
114 }
115
116 /*findAll查找多行数据*/
117 public function findAll(){
118 $fields = empty($fields)? ' * ' : $this->_fields;
119 $this->_query = mysql_query('select'.$fields.' from '.$this->_table_prefix.$this->_table_name.$this->_where.$this->_order.$this->_limit);
120 if(is_resource($this->_query)){
121 $resultData = array();
122 while($result = mysql_fetch_assoc($this->_query)){
123 $resultData[] = $result;
124 }
125 return $resultData;
126 }
127 //释放内存
128 mysql_free_result($this->_query);
129 }
130
131 /*select*/
132 public function select(){
133 $fields = empty($fields)? ' * ' : $this->_fields;
134 $this->_query = mysql_query('select'.$fields.' from '.$this->_table_prefix.$this->_table_name.$this->_where.$this->_order.$this->_limit);
135 if(is_resource($this->_query)){
136 $resultData = array();
137 while($result = mysql_fetch_assoc($this->_query)){
138 $resultData[] = $result;
139 }
140 return $resultData;
141 }
142 //释放内存
143 mysql_free_result($this->_query);
144 }
145
146 /*根据where中的条件进行删除*/
147 public function delete(){
148 $this->_query = mysql_query("delete from ".$this->_table_prefix.$this->_table_name.$this->_where);
149 if($this->_query){
150 return true;
151 }else{
152 return false;
153 }
154 mysql_free_result($this->_query);
155 }
156
157 /*根据where中的条件来进行更新*/
158 public function update($data){
159 if(!empty($data)){
160 $str = 'update `'.$this->_table_prefix.$this->_table_name.'` set ';
161 foreach ($data as $key => $value) {
162 $str .= "`$key`='".$value."',";
163 }
164 $str = rtrim($str,',');
165 $str .= ' '.$this->_where;
166 $this->_query = mysql_query($str);
167 if($this->_query){
168 return true;
169 }else{
170 return false;
171 }
172 }
173 mysql_free_result($this->_query);
174 }
175
176 /*关闭数据库*/
177 function __destruct(){
178 mysql_close($this->_link);
179 }
180 }
181
182 ?>