{"id":234,"date":"2017-03-21T20:23:13","date_gmt":"2017-03-21T12:23:13","guid":{"rendered":"http:\/\/pony.hk\/?p=234"},"modified":"2017-03-21T20:23:13","modified_gmt":"2017-03-21T12:23:13","slug":"php%e5%b0%81%e8%a3%85%e7%9a%84mysqli%e7%b1%bb","status":"publish","type":"post","link":"https:\/\/lnmp.ivan.xin\/?p=234","title":{"rendered":"php\u5c01\u88c5\u7684mysqli\u7c7b"},"content":{"rendered":"<p>php7\u53d6\u6d88\u4e86mysql\u8fde\u63a5\u65b9\u5f0f\uff0c\u91c7\u7528mysqli\u8fde\u63a5\u3002<\/p>\n<p>mysql_query \u6539\u7528&nbsp;mysqli_query<br \/>\nmysql_num_rows&nbsp;\u6539\u7528&nbsp;mysqli_num_rows<br \/>\nmysql_fetch_array&nbsp;\u6539\u7528&nbsp;mysqli_fetch_array<\/p>\n<p>php\u9875\u9762\u6587\u4ef6\u4e2d\u8c03\u7528\u4e3e\u4f8b\uff1a<\/p>\n<blockquote><p>$sql=\"insert into **\";<br \/>\nmysqli_query($db-&gt;conn,$sql);<\/p><\/blockquote>\n<p>global.php\u5168\u5c40\u914d\u7f6e\u5185\u5bb9\uff1a<\/p>\n<blockquote><p>$config=array();<br \/>\n$config['host']=\"localhost\"; \/\/mysql\u670d\u52a1\u5668\u5730\u5740<br \/>\n$config['user']=\"root\"; \/\/mysql\u7528\u6237\u540d<br \/>\n$config['pass']=\"\"; \/\/mysql\u5bc6\u7801<br \/>\n$config['data']=\"test\"; \/\/\u6570\u636e\u5e93\u540d\u79f0<br \/>\n$config['port']=\"3306\";<br \/>\n$config['debug']=\"\";<br \/>\n$config['prefix']=\"\";<br \/>\n$db = new db_mysqli($config);<\/p><\/blockquote>\n<p>mysqli.class.php\u5185\u5bb9\uff1a<\/p>\n<blockquote><p>#[\u7c7b\u5e93sql]<br \/>\nclass db_mysqli<br \/>\n{<br \/>\nvar $query_count = 0;<br \/>\nvar $host;<br \/>\nvar $user;<br \/>\nvar $pass;<br \/>\nvar $data;<br \/>\nvar $conn;<br \/>\nvar $result;<br \/>\nvar $prefix = \"\";<br \/>\n\/\/\u8fd4\u56de\u7ed3\u679c\u96c6\u7c7b\u578b\uff0c\u9ed8\u8ba4\u662f\u6570\u5b57+\u5b57\u7b26<br \/>\nvar $rs_type = MYSQLI_ASSOC;<br \/>\nvar $query_times = 0;#[\u67e5\u8be2\u65f6\u95f4]<br \/>\nvar $conn_times = 0;#[\u8fde\u63a5\u6570\u636e\u5e93\u65f6\u95f4]<br \/>\nvar $unbuffered = false;<br \/>\n\/\/\u5b9a\u4e49\u67e5\u8be2\u5217\u8868<br \/>\nvar $querylist;<br \/>\nvar $debug = false;<br \/>\n#[\u6784\u9020\u51fd\u6570]<br \/>\nfunction __construct($config=array())<br \/>\n{<br \/>\n$this-&gt;host = $config['host'] ? $config['host'] : 'localhost';<br \/>\n$this-&gt;port = $config['port'] ? $config['port'] : '3306';<br \/>\n$this-&gt;user = $config['user'] ? $config['user'] : 'root';<br \/>\n$this-&gt;pass = $config['pass'] ? $config['pass'] : '';<br \/>\n$this-&gt;data = $config['data'] ? $config['data'] : '';<br \/>\n$this-&gt;debug = $config[\"debug\"] ? $config[\"debug\"] : false;<br \/>\n$this-&gt;prefix = $config['prefix'] ? $config['prefix'] : '';<br \/>\nif($this-&gt;data)<br \/>\n{<br \/>\n$ifconnect = $this-&gt;connect($this-&gt;data);<br \/>\nif(!$ifconnect)<br \/>\n{<br \/>\n$this-&gt;conn = false;<br \/>\nreturn false;<br \/>\n}<br \/>\n}<br \/>\nreturn true;<br \/>\n}<br \/>\n#[\u517c\u5bb9PHP4]<br \/>\nfunction db_mysqli($config=array())<br \/>\n{<br \/>\nreturn $this-&gt;__construct($config);<br \/>\n}<br \/>\n#[\u8fde\u63a5\u6570\u636e\u5e93]<br \/>\nfunction connect($database=\"\")<br \/>\n{<br \/>\n$start_time = $this-&gt;time_used();<br \/>\nif(!$this-&gt;port) $this-&gt;port = \"3306\";<br \/>\n$this-&gt;conn = @mysqli_connect($this-&gt;host,$this-&gt;user,$this-&gt;pass,\"\",$this-&gt;port) or false;<br \/>\nif(!$this-&gt;conn)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$version = $this-&gt;get_version();<br \/>\nif($version&gt;\"4.1\")<br \/>\n{<br \/>\nmysqli_query($this-&gt;conn,\"SET NAMES 'gb2312'\");<br \/>\nif($version&gt;\"5.0.1\")<br \/>\n{<br \/>\nmysqli_query($this-&gt;conn,\"SET sql_mode='gb2312'\");<br \/>\n}<br \/>\n}<br \/>\n$end_time = $this-&gt;time_used();<br \/>\n$this-&gt;conn_times += round($end_time - $start_time,5);#[\u8fde\u63a5\u6570\u636e\u5e93\u7684\u65f6\u95f4]<br \/>\n$ifok = $this-&gt;select_db($database);<br \/>\nreturn $ifok ? true : false;<br \/>\n}<br \/>\nfunction select_db($data=\"\")<br \/>\n{<br \/>\n$database = $data ? $data : $this-&gt;data;<br \/>\nif(!$database)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$this-&gt;data = $database;<br \/>\n$start_time = $this-&gt;time_used();<br \/>\n$ifok = mysqli_select_db($this-&gt;conn,$database);<br \/>\nif(!$ifok)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$end_time = $this-&gt;time_used();<br \/>\n$this-&gt;conn_times += round($end_time - $start_time,5);#[\u8fde\u63a5\u6570\u636e\u5e93\u7684\u65f6\u95f4]<br \/>\nreturn true;<br \/>\n}<br \/>\n#[\u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5\uff0c\u5f53\u60a8\u4f7f\u7528\u6301\u7eed\u8fde\u63a5\u65f6\u8be5\u529f\u80fd\u5931\u6548]<br \/>\nfunction close()<br \/>\n{<br \/>\nif(is_resource($this-&gt;conn))<br \/>\n{<br \/>\nreturn mysqli_close($this-&gt;conn);<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\nreturn true;<br \/>\n}<br \/>\n}<br \/>\nfunction __destruct()<br \/>\n{<br \/>\nreturn $this-&gt;close();<br \/>\n}<br \/>\nfunction set($name,$value)<br \/>\n{<br \/>\nif($name == \"rs_type\")<br \/>\n{<br \/>\n$value = strtolower($value) == \"num\" ? MYSQLI_NUM : MYSQLI_ASSOC;<br \/>\n}<br \/>\n$this-&gt;$name = $value;<br \/>\n}<br \/>\nfunction query($sql)<br \/>\n{<br \/>\nif(!is_resource($this-&gt;conn))<br \/>\n{<br \/>\n$this-&gt;connect();<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\nif(!mysql_ping($this-&gt;conn))<br \/>\n{<br \/>\n$this-&gt;close();<br \/>\n$this-&gt;connect();<br \/>\n}<br \/>\n}<br \/>\nif($this-&gt;debug)<br \/>\n{<br \/>\n$sqlkey = md5($sql);<br \/>\nif($this-&gt;querylist)<br \/>\n{<br \/>\n$qlist = array_keys($this-&gt;querylist);<br \/>\nif(in_array($sqlkey,$qlist))<br \/>\n{<br \/>\n$count = $this-&gt;querylist[$sqlkey][\"count\"] + 1;<br \/>\n$this-&gt;querylist[$sqlkey] = array(\"sql\"=&gt;$sql,\"count\"=&gt;$count);<br \/>\n}else{<br \/>\n$this-&gt;querylist[$sqlkey] = array(\"sql\"=&gt;$sql,\"count\"=&gt;1);<br \/>\n}<br \/>\n}<br \/>\nelse{<br \/>\n$this-&gt;querylist[$sqlkey] = array(\"sql\"=&gt;$sql,\"count\"=&gt;1);<br \/>\n}<br \/>\n}<br \/>\n$start_time = $this-&gt;time_used();<br \/>\n$func = $this-&gt;unbuffered &amp;&amp; function_exists(\"mysqli_multi_query\") ? \"mysqli_multi_query\" : \"mysqli_query\";<br \/>\n$this-&gt;result = @$func($this-&gt;conn,$sql);<br \/>\n$this-&gt;query_count++;<br \/>\n$end_time = $this-&gt;time_used();<br \/>\n$this-&gt;query_times += round($end_time - $start_time,5);#[\u67e5\u8be2\u65f6\u95f4]<br \/>\nif(!$this-&gt;result)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\nreturn $this-&gt;result;<br \/>\n}<br \/>\nfunction get_all($sql=\"\",$primary=\"\")<br \/>\n{<br \/>\n$result = $sql ? $this-&gt;query($sql) : $this-&gt;result;<br \/>\nif(!$result)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$start_time = $this-&gt;time_used();<br \/>\n$rs = array();<br \/>\n$is_rs = false;<br \/>\nwhile($rows = mysqli_fetch_array($result,$this-&gt;rs_type))<br \/>\n{<br \/>\nif($primary &amp;&amp; $rows[$primary])<br \/>\n{<br \/>\n$rs[$rows[$primary]] = $rows;<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\n$rs[] = $rows;<br \/>\n}<br \/>\n$is_rs = true;<br \/>\n}<br \/>\n$end_time = $this-&gt;time_used();<br \/>\n$this-&gt;query_times += round($end_time - $start_time,5);#[\u67e5\u8be2\u65f6\u95f4]<br \/>\nreturn ($is_rs ? $rs : false);<br \/>\n}<br \/>\nfunction get_one($sql=\"\")<br \/>\n{<br \/>\n$start_time = $this-&gt;time_used();<br \/>\n$result = $sql ? $this-&gt;query($sql) : $this-&gt;result;<br \/>\nif(!$result)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$rows = mysqli_fetch_array($result,$this-&gt;rs_type);<br \/>\n$end_time = $this-&gt;time_used();<br \/>\n$this-&gt;query_times += round($end_time - $start_time,5);#[\u67e5\u8be2\u65f6\u95f4]<br \/>\nreturn $rows;<br \/>\n}<br \/>\nfunction insert_id($sql=\"\")<br \/>\n{<br \/>\nif($sql)<br \/>\n{<br \/>\n$rs = $this-&gt;get_one($sql);<br \/>\nreturn $rs;<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\nreturn mysqli_insert_id($this-&gt;conn);<br \/>\n}<br \/>\n}<br \/>\nfunction insert($sql)<br \/>\n{<br \/>\n$this-&gt;result = $this-&gt;query($sql);<br \/>\n$id = $this-&gt;insert_id();<br \/>\nreturn $id;<br \/>\n}<br \/>\nfunction all_array($table,$condition=\"\",$orderby=\"\")<br \/>\n{<br \/>\nif(!$table)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$table = $this-&gt;prefix.$table;<br \/>\n$sql = \"SELECT * FROM \".$table;<br \/>\nif($condition &amp;&amp; is_array($condition) &amp;&amp; count($condition)&gt;0)<br \/>\n{<br \/>\n$sql_fields = array();<br \/>\nforeach($condition AS $key=&gt;$value)<br \/>\n{<br \/>\n$sql_fields[] = \"`\".$key.\"`='\".$value.\"' \";<br \/>\n}<br \/>\n$sql .= \" WHERE \".implode(\" AND \",$sql_fields);<br \/>\n}<br \/>\nif($orderby)<br \/>\n{<br \/>\n$sql .= \" ORDER BY \".$orderby;<br \/>\n}<br \/>\n$rslist = $this-&gt;get_all($sql);<br \/>\nreturn $rslist;<br \/>\n}<br \/>\nfunction one_array($table,$condition=\"\")<br \/>\n{<br \/>\nif(!$table)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$table = $this-&gt;prefix.$table;<br \/>\n$sql = \"SELECT * FROM \".$table;<br \/>\nif($condition &amp;&amp; is_array($condition) &amp;&amp; count($condition)&gt;0)<br \/>\n{<br \/>\n$sql_fields = array();<br \/>\nforeach($condition AS $key=&gt;$value)<br \/>\n{<br \/>\n$sql_fields[] = \"`\".$key.\"`='\".$value.\"' \";<br \/>\n}<br \/>\n$sql .= \" WHERE \".implode(\" AND \",$sql_fields);<br \/>\n}<br \/>\n$rslist = $this-&gt;get_one($sql);<br \/>\nreturn $rslist;<br \/>\n}<br \/>\n\/\/\u5c06\u6570\u7ec4\u5199\u5165\u6570\u636e\u4e2d<br \/>\nfunction insert_array($data,$table,$insert_type=\"insert\")<br \/>\n{<br \/>\nif(!$table || !is_array($data) || !$data)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$table = $this-&gt;prefix.$table;\/\/\u81ea\u52a8\u589e\u52a0\u8868\u524d\u7f00<br \/>\nif($insert_type == \"insert\")<br \/>\n{<br \/>\n$sql = \"INSERT INTO \".$table;<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\n$sql = \"REPLACE INTO \".$table;<br \/>\n}<br \/>\n$sql_fields = array();<br \/>\n$sql_val = array();<br \/>\nforeach($data AS $key=&gt;$value)<br \/>\n{<br \/>\n$sql_fields[] = \"`\".$key.\"`\";<br \/>\n$sql_val[] = \"'\".$value.\"'\";<br \/>\n}<br \/>\n$sql.= \"(\".(implode(\",\",$sql_fields)).\") VALUES(\".(implode(\",\",$sql_val)).\")\";<br \/>\nreturn $this-&gt;insert($sql);<br \/>\n}<br \/>\n\/\/\u66f4\u65b0\u6570\u636e<br \/>\nfunction update_array($data,$table,$condition)<br \/>\n{<br \/>\nif(!$data || !$table || !$condition || !is_array($data) || !is_array($condition))<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$table = $this-&gt;prefix.$table;\/\/\u81ea\u52a8\u589e\u52a0\u8868\u524d\u7f00<br \/>\n$sql = \"UPDATE \".$table.\" SET \";<br \/>\n$sql_fields = array();<br \/>\nforeach($data AS $key=&gt;$value)<br \/>\n{<br \/>\n$sql_fields[] = \"`\".$key.\"`='\".$value.\"'\";<br \/>\n}<br \/>\n$sql.= implode(\",\",$sql_fields);<br \/>\n$sql_fields = array();<br \/>\nforeach($condition AS $key=&gt;$value)<br \/>\n{<br \/>\n$sql_fields[] = \"`\".$key.\"`='\".$value.\"' \";<br \/>\n}<br \/>\n$sql .= \" WHERE \".implode(\" AND \",$sql_fields);<br \/>\nreturn $this-&gt;query($sql);<br \/>\n}<br \/>\nfunction count($sql=\"\")<br \/>\n{<br \/>\nif($sql)<br \/>\n{<br \/>\n$this-&gt;rs_type = MYSQLI_NUM;<br \/>\n$this-&gt;query($sql);<br \/>\n$rs = $this-&gt;get_one();<br \/>\n$this-&gt;rs_type = MYSQLI_ASSOC;<br \/>\nreturn $rs[0];<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\nreturn mysqli_num_rows($this-&gt;result);<br \/>\n}<br \/>\n}<br \/>\nfunction num_fields($sql=\"\")<br \/>\n{<br \/>\nif($sql)<br \/>\n{<br \/>\n$this-&gt;query($sql);<br \/>\n}<br \/>\nreturn mysqli_num_fields($this-&gt;result);<br \/>\n}<br \/>\nfunction list_fields($table)<br \/>\n{<br \/>\n$rs = $this-&gt;get_all(\"SHOW COLUMNS FROM \".$table);<br \/>\nif(!$rs)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\nforeach($rs AS $key=&gt;$value)<br \/>\n{<br \/>\n$rslist[] = $value[\"Field\"];<br \/>\n}<br \/>\nreturn $rslist;<br \/>\n}<br \/>\n#[\u663e\u793a\u8868\u540d]<br \/>\nfunction list_tables()<br \/>\n{<br \/>\n$rs = $this-&gt;get_all(\"SHOW TABLES\");<br \/>\nreturn $rs;<br \/>\n}<br \/>\nfunction table_name($table_list,$i)<br \/>\n{<br \/>\nreturn $table_list[$i];<br \/>\n}<br \/>\nfunction escape_string($char)<br \/>\n{<br \/>\nif(!$char)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\nreturn mysqli_escape_string($this-&gt;conn,$char);<br \/>\n}<br \/>\nfunction get_version()<br \/>\n{<br \/>\nreturn mysqli_get_server_info($this-&gt;conn);<br \/>\n}<br \/>\nfunction time_used()<br \/>\n{<br \/>\n$time = explode(\" \",microtime());<br \/>\n$used_time = $time[0] + $time[1];<br \/>\nreturn $used_time;<br \/>\n}<br \/>\n\/\/Mysql\u7684\u67e5\u8be2\u65f6\u95f4<br \/>\nfunction conn_times()<br \/>\n{<br \/>\nreturn $this-&gt;conn_times + $this-&gt;query_times;<br \/>\n}<br \/>\n\/\/MySQL\u67e5\u8be2\u8d44\u6599<br \/>\nfunction conn_count()<br \/>\n{<br \/>\nreturn $this-&gt;query_count;<br \/>\n}<br \/>\n# \u9ad8\u6548SQL\u751f\u6210\u67e5\u8be2\uff0c\u4ec5\u9002\u5408\u5355\u8868\u67e5\u8be2<br \/>\nfunction phpok_one($tbl,$condition=\"\",$fields=\"*\")<br \/>\n{<br \/>\n$sql = \"SELECT \".$fields.\" FROM \".$this-&gt;db-&gt;prefix.$tbl;<br \/>\nif($condition)<br \/>\n{<br \/>\n$sql .= \" WHERE \".$condition;<br \/>\n}<br \/>\nreturn $this-&gt;get_one($sql);<br \/>\n}<br \/>\nfunction debug()<br \/>\n{<br \/>\nif(!$this-&gt;querylist || !is_array($this-&gt;querylist) || count($this-&gt;querylist) &lt; 1)<br \/>\n{<br \/>\nreturn false;<br \/>\n}<br \/>\n$html = '&lt;table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" bgcolor=\"#CECECE\"&gt;&lt;tr&gt;&lt;td&gt;';<br \/>\n$html.= '&lt;table cellpadding=\"1\" cellspacing=\"1\" width=\"100%\"&gt;';<br \/>\n$html.= '&lt;tr&gt;&lt;th bgcolor=\"#EFEFEF\" height=\"30px\"&gt;SQL&lt;\/th&gt;&lt;th bgcolor=\"#EFEFEF\" width=\"80px\"&gt;\u67e5\u8be2&lt;\/th&gt;&lt;\/tr&gt;';<br \/>\nforeach($this-&gt;querylist AS $key=&gt;$value)<br \/>\n{<br \/>\n$html .= '&lt;tr&gt;&lt;td bgcolor=\"#FFFFFF\"&gt;&lt;div style=\"padding:3px;color:#6E6E6E;\"&gt;'.$value['sql'].'&lt;\/div&gt;&lt;\/td&gt;';<br \/>\n$html .= '&lt;td align=\"center\" bgcolor=\"#FFFFFF\"&gt;&lt;div style=\"padding:3px;color:#000000;\"&gt;'.$value[\"count\"].'&lt;\/div&gt;&lt;\/td&gt;&lt;\/tr&gt;';<br \/>\n}<br \/>\n$html.= \"&lt;\/table&gt;\";<br \/>\n$html.= \"&lt;\/td&gt;&lt;\/tr&gt;&lt;\/table&gt;\";<br \/>\nreturn $html;<br \/>\n}<br \/>\nfunction conn_status()<br \/>\n{<br \/>\nif(!$this-&gt;conn) return false;<br \/>\nreturn true;<br \/>\n}<br \/>\n}<br \/>\n?&gt;<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>php7\u53d6\u6d88\u4e86mysql\u8fde\u63a5\u65b9\u5f0f\uff0c\u91c7\u7528mysqli\u8fde\u63a5\u3002 mysql_query \u6539\u7528&nbsp;mysqli...<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15330,15331],"tags":[],"class_list":["post-234","post","type-post","status-publish","format-standard","hentry","category-mysql","category-php"],"_links":{"self":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts\/234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=234"}],"version-history":[{"count":0,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=\/wp\/v2\/posts\/234\/revisions"}],"wp:attachment":[{"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lnmp.ivan.xin\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}