Discuz   发布时间:2022-05-06  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了UCHome中数据库操作类(class_mysql.php)页面的代码分析大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

UCHome的数据库操作类,相对来说还是比较容易让人理解的 代码  1 <?php  2 /*  3 [UCenter Home] (C) 2007-2008 Comsenz Inc.  4 $Id: class_mysql.php 2009-10-22 1:15:00  5 @author ymaozi  6 @copyright http://www.codedesign.cn  7 @uchome源码交流QQ群:83400263  8 */  9  10 if(!defined('IN_UCHOME')) { 11 exit('Access Denied'); 12 } 13  14 class dbstuff { 15 var $querynum = 0; 16 var $link; 17 var $charset; 18  19 /** 20 * 建立数据库连接 21 * @param String $dbhost 22 * @param String $dbuser 23 * @param String $dbpw 24 * @param String $dbname 25 * @param int $pconnect 26 * @param bool $halt 27 */ 28@R_305_3816@ connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $halt = TRUE) { 29 if($pconnect) {//是否采用了持久连接, 30 if(!$this->link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) {//建立永久连接,永久连接不能通过mysql_close关闭 31 $halt &amp;&amp; $this->halt('Can not connect to MySQL server'); 32 } 33 } else { 34 if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw, 1)) {//建立数据库连接 35 $halt &amp;&amp; $this->halt('Can not connect to MySQL server'); 36 } 37 } 38  39 <span id="more-106"></span> 40  41 if($this->version() > '4.1') { 42 if($this->charset) { 43 @mysql_query("SET character_set_connection=$this->charset, character_set_results=$this->charset, character_set_client=binary", $this->link); 44 } 45 if($this->version() > '5.0.1') { 46 @mysql_query("SET sql_mode=''", $this->link); 47 } 48 } 49 if($dbName) { 50 @mysql_SELEct_db($dbname, $this->link); 51 } 52 } 53 /** 54 * 选择数据库 55 * @param String $dbname 数据库名 56 * @return bool 57 */ 58@R_305_3816SELEct_db($dbName) { 59 return mysql_SELEct_db($dbname, $this->link); 60 } 61  62 /** 63 * 获取查询的数组 64 * @param object $query 65 * @param String $result_type MYSQL_ASSOC 只得到关联索引,MYSQL_NUM 只得到数字索引 66 * @return array 67 */ 68@R_305_3816@ fetch_array($query, $result_type = MYSQL_ASSOC) { 69 return mysql_fetch_array($query, $result_typE); 70 } 71  72 /** 73 * 执行一条sql语句 74 * @param String $sql 要执行的sql语句 75 * @param String $type 如果$type为UNBUFFERED:则执行mysql_unbuffered_query();他与mysql_query的区别是,执行后不获取和缓存结果的行 76 * @return object 77 */ 78@R_305_3816@ query($sql, $type = '') { 79 if(D_BUG) { 80 global $_SGLOBAL; 81 $sqlstarttime = $sqlendttime = 0; //sql开始时间与结束时间 82 $mtime = explode(' ', microtime()); 83 $sqlstarttime = number_format(($mtime[1] + $mtime[0] - $_SGLOBAL['supe_starttime']), 6) * 1000; 84 } 85 //如果定义$type='UNBUFFERED' 则执行mysql_unbuffered_query()函数 86 $func = $type == 'UNBUFFERED' && @function_exists('Mysql_unbuffered_query') ? 87 'R_510_11845@ysql_unbuffered_query' : 'R_510_11845@ysql_query'; 88 if(!($query = $func($sql, $this->link)) && $type != 'SILENT') { 89 $this->halt('MySQL Query Error', $sql); 90 } 91 if(D_BUG) { 92 $mtime = explode(' ', microtime()); 93 $sqlendttime = number_format(($mtime[1] + $mtime[0] - $_SGLOBAL['supe_starttime']), 6) * 1000; 94 $sqltime = round(($sqlendttime - $sqlstarttimE), 3);//获取php的结束时间 95  96 $explain = array(); 97 $info = mysql_info();//取得最近一条查询的信息 98 if($query && preg_match("/^(SELEct )/i", $sql)) { 99 $explain = mysql_fetch_assoc(mysql_query('eXPLAIN '.$sql, $this->link));100 }101 $_SGLOBAL['debug_query'][] = array('sql'=>$sql, 'time'=>$sqltime, 'info'=>$info, 'explain'=>$explain);102 }103 $this->querynum++; //将执行的query数加1104 return $query;105 }106 /**107 * 取得前一次 MySQL 操作所影响的记录行数108 * @return int109 */110@R_305_3816@ affected_rows() {111 return mysql_affected_rows($this->link);112 }113 /**114 * 返回上一个 MySQL 操作产生的文本错误信息115 * @return String116 */117@R_305_3816@ error() {118 return (($this->link) ? mysql_error($this->link) : mysql_error());119 }120 /**121 * 返回上一个 MySQL 操作中的错误信息的数字编码122 * @return int123 */124@R_305_3816@ errno() {125 return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());126 }127 /**128 * 取指定的结果集129 * @param object $query130 * @param int $row131 * @return String132 */133@R_305_3816@ result($query, $row) {134 $query = @mysql_result($query, $row);135 return $query;136 }137 /**138 * 取得结果集的行数139 * @param object $query140 * @return int141 */142@R_305_3816@ num_rows($query) {143 $query = mysql_num_rows($query);144 return $query;145 }146 /**147 * 取得字段数148 * @param object $query149 * @return int150 */151@R_305_3816@ num_fields($query) {152 return mysql_num_fields($query);153 }154 /**155 * 释放结果内存156 * @param object $query157 * @return bool158 */159@R_305_3816@ free_result($query) {160 return mysql_free_result($query);161 }162 /**163 * 取得上一步 INSERT 操作产生的 ID164 * @return int165 */166@R_305_3816@ insert_id() {167 return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("seleCT last_insert_id()"), 0);168 }169 /**170 * 从查询语句中取一条记录171 * @param object $query172 * @return array173 */174@R_305_3816@ fetch_row($query) {175 $query = mysql_fetch_row($query);176 return $query;177 }178 /**179 * 从结果集中取得列信息180 * @param object $query181 * @ret

UCHome的数据库操作类,相对来说还是比较容易让人理解的

<div class="cnblogs_code" onclick="cnblogs_code_show('8003c875-8b89-4fbc-98c2-1c03041e1719')">
<img style="display: none" id="code_img_closed_8003c875-8b89-4fbc-98c2-1c03041e1719" class="code_img_closed" src="http://code.js-code.com/res/2019/02-07/12/1c53668bcee393edac0d7b3b3daff1ae.gif" alt=""><img id="code_img_opened_8003c875-8b89-4fbc-98c2-1c03041e1719" class="code_img_opened" onclick="cnblogs_code_hide('8003c875-8b89-4fbc-98c2-1c03041e1719',event)" src="http://code.js-code.com/res/2019/02-07/12/405b18b4b6584ae338e0f6ecaf736533.gif"&gt;<span class="cnblogs_code_collapse">代码
<div id="cnblogs_code_open_8003c875-8b89-4fbc-98c2-1c03041e1719">

 <>PHP   MysqL.PHP 2009-10-22 1:15:00                数据库连接          MysqL_pconnectMysqL_close关闭 MysqL server   MysqL_connect数据库连接 MysqL server        MysqL_querycharset, character_set_results=charset, character_set_client=binary   MysqL_querysql_mode=''    MysqL_SELEct_db    数据库 数据库    MysqL_SELEct_db    获取查询的数组  MysqL_ASSOC 只得到关联索引,MysqL_NUM 只得到数字索引   MysqL_ASSOC) { MysqL_fetch_array    sql语句 sql 要执行的sql语句 MysqL_unbuffered_query();他与MysqL_query的区别是,执行后不获取和缓存结果的行   sql   sqlstarttimesqlendttimesql开始时间与结束时间  sqlstarttime  MysqL_unbuffered_query()函数 MysqL_unbuffered_query MysqL_unbuffered_queryMysqL_query sql MysqL Query Errorsql    sqlendttime sqltimesqlendttimesqlstarttime获取PHP结束时间   MysqL_info查询的信息 sql MysqL_fetch_assocMysqL_querysql  sqlsqlsqltime      MysqL 操作所影响的记录行数    MysqL_affected_rows   一个 MysqL 操作产生的文本错误信息    MysqL_errorMysqL_error   一个 MysqL 操作中的错误信息的数字编码    MysqL_errnoMysqL_errno         MysqL_result         MysqL_num_rows         MysqL_num_fields        MysqL_free_result       MysqL_insert_id=   查询语句中取一条记录     MysqL_fetch_row         MysqL_fetch_field   MysqL 服务器信息    MysqL_get_server_info   关闭 MysqL 连接    MysqL_close   错误时,弹出的信息窗口  sql  sql 获取错误提示字符串 获取错误信息的数字编码 MysqL& dberrno= <> MysqL : sql:sql : :  输出错误的信息      

大佬总结

以上是大佬教程为你收集整理的UCHome中数据库操作类(class_mysql.php)页面的代码分析全部内容,希望文章能够帮你解决UCHome中数据库操作类(class_mysql.php)页面的代码分析所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: