日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql类 php100_php mysql 类

發布時間:2023/12/20 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql类 php100_php mysql 类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 <?php2 /**3 * MySQL 數據庫操作工具類, 方便數據庫操作.4 * 示例見底部注釋.5 * @author: fuck me every day6 */

7 class Mysql{8 var $conn;9 var $query_list = array();10 public $query_count = 0;11

12 public function __construct($c){13 if(!isset($c['port'])){14 $c['port'] = '3306';15 }16 $server = $c['host'] . ':' . $c['port'];17 $this->conn = mysql_connect($server, $c['username'], $c['password'], true) or die('connect db error');18 mysql_select_db($c['dbname'], $this->conn) or die('select db error');19 if($c['charset']){20 mysql_query("set names " . $c['charset'], $this->conn);21 }22 }23

24 /**25 * 執行 mysql_query 并返回其結果.26 */

27 public function query($sql){28 $stime = microtime(true);29

30 $result = mysql_query($sql, $this->conn);31 $this->query_count ++;32 if($result === false){33 throw new Exception(mysql_error($this->conn)." in SQL: $sql");34 }35

36 $etime = microtime(true);37 $time = number_format(($etime - $stime) * 1000, 2);38 $this->query_list[] = $time . ' ' . $sql;39 return $result;40 }41

42 /**43 * 執行 SQL 語句, 返回結果的第一條記錄(是一個對象).44 */

45 public function get($sql){46 $result = $this->query($sql);47 if($row = mysql_fetch_object($result)){48 return $row;49 }else{50 return null;51 }52 }53

54 /**55 * 返回查詢結果集, 以 key 為鍵組織成關聯數組, 每一個元素是一個對象.56 * 如果 key 為空, 則將結果組織成普通的數組.57 */

58 public function find($sql, $key=null){59 $data = array();60 $result = $this->query($sql);61 while($row = mysql_fetch_object($result)){62 if(!empty($key)){63 $data[$row->{$key}] = $row;64 }else{65 $data[] = $row;66 }67 }68 return $data;69 }70

71 public functionlast_insert_id(){72 return mysql_insert_id($this->conn);73 }74

75 /**76 * 執行一條帶有結果集計數的 count SQL 語句, 并返該計數.77 */

78 public function count($sql){79 $result = $this->query($sql);80 if($row = mysql_fetch_array($result)){81 return (int)$row[0];82 }else{83 return 0;84 }85 }86

87 /**88 * 開始一個事務.89 */

90 public functionbegin(){91 mysql_query('begin');92 }93

94 /**95 * 提交一個事務.96 */

97 public functioncommit(){98 mysql_query('commit');99 }100

101 /**102 * 回滾一個事務.103 */

104 public functionrollback(){105 mysql_query('rollback');106 }107

108 /**109 * 獲取指定編號的記錄.110 * @param int $id 要獲取的記錄的編號.111 * @param string $field 字段名, 默認為'id'.112 */

113 function load($table, $id, $field='id'){114 $sql = "select * from `{$table}` where `{$field}`='{$id}'";115 $row = $this->get($sql);116 return $row;117 }118

119 /**120 * 保存一條記錄, 調用后, id被設置.121 * @param object $row122 */

123 function save($table, &$row){124 $sqlA = '';125 foreach($row as $k=>$v){126 $sqlA .= "`$k` = '$v',";127 }128

129 $sqlA = substr($sqlA, 0, strlen($sqlA)-1);130 $sql = "insert into `{$table}` set $sqlA";131 $this->query($sql);132 if(is_object($row)){133 $row->id = $this->last_insert_id();134 }else if(is_array($row)){135 $row['id'] = $this->last_insert_id();136 }137 }138

139 /**140 * 更新$arr[id]所指定的記錄.141 * @param array $row 要更新的記錄, 鍵名為id的數組項的值指示了所要更新的記錄.142 * @return int 影響的行數.143 * @param string $field 字段名, 默認為'id'.144 */

145 function update($table, &$row, $field='id'){146 $sqlA = '';147 foreach($row as $k=>$v){148 $sqlA .= "`$k` = '$v',";149 }150

151 $sqlA = substr($sqlA, 0, strlen($sqlA)-1);152 if(is_object($row)){153 $id = $row->{$field};154 }else if(is_array($row)){155 $id = $row[$field];156 }157 $sql = "update `{$table}` set $sqlA where `{$field}`='$id'";158 return $this->query($sql);159 }160

161 /**162 * 刪除一條記錄.163 * @param int $id 要刪除的記錄編號.164 * @return int 影響的行數.165 * @param string $field 字段名, 默認為'id'.166 */

167 function remove($table, $id, $field='id'){168 $sql = "delete from `{$table}` where `{$field}`='{$id}'";169 return $this->query($sql);170 }171

172 function escape(&$val){173 if(is_object($val) || is_array($val)){174 $this->escape_row($val);175 }176 }177

178 function escape_row(&$row){179 if(is_object($row)){180 foreach($row as $k=>$v){181 $row->$k = mysql_real_escape_string($v);182 }183 }else if(is_array($row)){184 foreach($row as $k=>$v){185 $row[$k] = mysql_real_escape_string($v);186 }187 }188 }189

190 function escape_like_string($str){191 $find = array('%', '_');192 $replace = array('\%', '\_');193 $str = str_replace($find, $replace, $str);194 return $str;195 }196 }197 ?>

198 使用例子:

199

200 <?php201 //保存

202 $db->save('table_1', $row);203 //更新

204 $db->update('table_1', $row);205 //刪除

206 $db->remove('table_1', 1);207 //查詢

208 $rows = $db->find($sql, 'id')209 ?>

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql类 php100_php mysql 类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。