php中Mysql常用操作类收集

  1 <?php
2 /*
3 * mysql数据库 DB类
4 * @package db
5 * @author yytcpt(无影)
6 * @version 2008-03-27
7 * @copyrigth http://www.d5s.cn/
8 */
9 class db {
10 var $connection_id = "";
11 var $pconnect = 0;
12 var $shutdown_queries = array();
13 var $queries = array();
14 var $query_id = "";
15 var $query_count = 0;
16 var $record_row = array();
17 var $failed = 0;
18 var $halt = "";
19 var $query_log = array();
20 function connect($db_config){
21 if ($this->pconnect){
22 $this->connection_id = mysql_pconnect($db_config["hostname"], $db_config["username"], $db_config["password"]);
23 }else{
24 $this->connection_id = mysql_connect($db_config["hostname"], $db_config["username"], $db_config["password"]);
25 }
26 if ( ! $this->connection_id ){
27 $this->halt("Can not connect MySQL Server");
28 }
29 if ( ! @mysql_select_db($db_config["database"], $this->connection_id) ){
30 $this->halt("Can not connect MySQL Database");
31 }
32 if ($db_config["charset"]) {
33 @mysql_unbuffered_query("SET NAMES '".$db_config["charset"]."'");
34 }
35 return true;
36 }
37 //发送SQL 查询,并返回结果集
38 function query($query_id, $query_type='mysql_query'){
39 $this->query_id = $query_type($query_id, $this->connection_id);
40 $this->queries[] = $query_id;
41 if (! $this->query_id ) {
42 $this->halt("查询失败:\n$query_id");
43 }
44 $this->query_count++;
45 $this->query_log[] = $str;
46 return $this->query_id;
47 }
48 //发送SQL 查询,并不获取和缓存结果的行
49 function query_unbuffered($sql=""){
50 return $this->query($sql, 'mysql_unbuffered_query');
51 }
52 //从结果集中取得一行作为关联数组
53 function fetch_array($sql = ""){
54 if ($sql == "") $sql = $this->query_id;
55 $this->record_row = @mysql_fetch_array($sql, MYSQL_ASSOC);
56 return $this->record_row;
57 }
58 function shutdown_query($query_id = ""){
59 $this->shutdown_queries[] = $query_id;
60 }
61 //取得结果集中行的数目,仅对 INSERTUPDATE 或者 DELETE
62 function affected_rows() {
63 return @mysql_affected_rows($this->connection_id);
64 }
65 //取得结果集中行的数目,仅对 SELECT 语句有效
66 function num_rows($query_id="") {
67 if ($query_id == "") $query_id = $this->query_id;
68 return @mysql_num_rows($query_id);
69 }
70 //返回上一个 MySQL 操作中的错误信息的数字编码
71 function get_errno(){
72 $this->errno = @mysql_errno($this->connection_id);
73 return $this->errno;
74 }
75 //取得上一步 INSERT 操作产生的 ID
76 function insert_id(){
77 return @mysql_insert_id($this->connection_id);
78 }
79 //得到查询次数
80 function query_count() {
81 return $this->query_count;
82 }
83 //释放结果内存
84 function free_result($query_id=""){
85 if ($query_id == "") $query_id = $this->query_id;
86 @mysql_free_result($query_id);
87 }
88 //关闭 MySQL 连接
89 function close_db(){
90 if ( $this->connection_id ) return @mysql_close( $this->connection_id );
91 }
92 //列出 MySQL 数据库中的表
93 function get_table_names(){
94 global $db_config;
95 $result = mysql_list_tables($db_config["database"]);
96 $num_tables = @mysql_numrows($result);
97 for ($i = 0; $i < $num_tables; $i++) {
98 $tables[] = mysql_tablename($result, $i);
99 }
100 mysql_free_result($result);
101 return $tables;
102 }
103 //从结果集中取得列信息并作为对象返回,取得所有字段
104 function get_result_fields($query_id=""){
105 if ($query_id == "") $query_id = $this->query_id;
106 while ($field = mysql_fetch_field($query_id)) {
107 $fields[] = $field;
108 }
109 return $fields;
110 }
111 //错误提示
112 function halt($the_error=""){
113 $message = $the_error."<br/>\r\n";
114 $message.= $this->get_errno() . "<br/>\r\n";
115 $sql = "INSERT INTO `db_error`(pagename, errstr, timer) VALUES('".$_SERVER["PHP_SELF"]."', '".addslashes($message)."', ".time().")";
116 @mysql_unbuffered_query($sql);
117 if (DEBUG==true){
118 echo "<html><head><title>MySQL 数据库错误</title>";
119 echo "<style type=\"text/css\"><!--.error { font: 11px tahoma, verdana, arial, sans-serif, simsun; }--></style></head>\r\n";
120 echo "<body>\r\n";
121 echo "<blockquote>\r\n";
122 echo "<textarea class=\"error\" rows=\"15\" cols=\"100\" wrap=\"on\" >" . htmlspecialchars($message) . "</textarea>\r\n";
123 echo "</blockquote>\r\n</body></html>";
124 exit;
125 }
126 }
127 function __destruct(){
128 $this->shutdown_queries = array();
129 $this->close_db();
130 }
131 function sql_select($tbname, $where="", $limit=0, $fields="*", $orderby="id", $sort="DESC"){
132 $sql = "SELECT ".$fields." FROM `".$tbname."` ".($where?" WHERE ".$where:"")." ORDER BY ".$orderby." ".$sort.($limit ? " limit ".$limit:"");
133 return $sql;
134 }
135 function sql_insert($tbname, $row){
136 foreach ($row as $key=>$value) {
137 $sqlfield .= $key.",";
138 $sqlvalue .= "'".$value."',";
139 }
140 return "INSERT INTO `".$tbname."`(".substr($sqlfield, 0, -1).") VALUES (".substr($sqlvalue, 0, -1).")";
141 }
142 function sql_update($tbname, $row, $where){
143 foreach ($row as $key=>$value) {
144 $sqlud .= $key."= '".$value."',";
145 }
146 return "UPDATE `".$tbname."` SET ".substr($sqlud, 0, -1)." WHERE ".$where;
147 }
148 function sql_delete($tbname, $where){
149 return "DELETE FROM `".$tbname."` WHERE ".$where;
150 }
151 //新增加一条记录
152 function row_insert($tbname, $row){
153 $sql = $this->sql_insert($tbname, $row);
154 return $this->query_unbuffered($sql);
155 }
156 //更新指定记录
157 function row_update($tbname, $row, $where){
158 $sql = $this->sql_update($tbname, $row, $where);
159 return $this->query_unbuffered($sql);
160 }
161 //删除满足条件的记录
162 function row_delete($tbname, $where){
163 $sql = $this->sql_delete($tbname, $where);
164 return $this->query_unbuffered($sql);
165 }
166 /* 根据条件查询,返回所有记录
167 * $tbname 表名, $where 查询条件, $limit 返回记录, $fields 返回字段
168 */
169 function row_select($tbname, $where="", $limit=0, $fields="*", $orderby="id", $sort="DESC"){
170 $sql = $this->sql_select($tbname, $where, $limit, $fields, $orderby, $sort);
171 return $this->row_query($sql);
172 }
173 //详细显示一条记录
174 function row_select_one($tbname, $where, $fields="*", $orderby="id"){
175 $sql = $this->sql_select($tbname, $where, 1, $fields, $orderby);
176 return $this->row_query_one($sql);
177 }
178 function row_query($sql){
179 $rs = $this->query($sql);
180 $rs_num = $this->num_rows($rs);
181 $rows = array();
182 for($i=0; $i<$rs_num; $i++){
183 $rows[] = $this->fetch_array($rs);
184 }
185 $this->free_result($rs);
186 return $rows;
187 }
188 function row_query_one($sql){
189 $rs = $this->query($sql);
190 $row = $this->fetch_array($rs);
191 $this->free_result($rs);
192 return $row;
193 }
194 //计数统计
195 function row_count($tbname, $where=""){
196 $sql = "SELECT count(id) as row_sum FROM `".$tbname."` ".($where?" WHERE ".$where:"");
197 $row = $this->row_query_one($sql);
198 return $row["row_sum"];
199 }
200 }
201 ?>

  

 1 <?php
2 $db_config["hostname"] = "127.0.0.1"; //服务器地址
3 $db_config["username"] = "root"; //数据库用户名
4 $db_config["password"] = "root"; //数据库密码
5 $db_config["database"] = "wap_blueidea_com"; //数据库名称
6 $db_config["charset"] = "utf8";
7 include('db.php');
8 $db = new db();
9 $db->connect($db_config);
10 //例:查询表 table_name 中 cid=1的所有记录。
11 $row = $db->row_select('table_name', 'cid=1');
12 ?>

  

posted @ 2011-07-20 17:34  Credo Chen  阅读(615)  评论(0)    收藏  举报
无觅相关文章插件,快速提升流量