改造自discuz的MySQL查询类

MySQL查询类对于很多刚刚接触MySQL数据库的新人来说可能还比较陌生,下面就为您介绍改造自discuz的MySQL查询类,希望可以让您对MySQL查询类有更多的了解。

  1. <?php 
  2. /**  
  3. * mysql查询类  
  4. *  
  5. */  
  6. class dbQuery {  
  7. /**  
  8. * 查询总次数  
  9. *  
  10. * @var int  
  11. */  
  12. var $querynum = 0;  
  13. /**  
  14. * 连接句柄  
  15. *  
  16. * @var object  
  17. */  
  18. var $link;  
  19.  
  20. /**  
  21. * 构造函数  
  22. *  
  23. * @param string $dbhost 主机名  
  24. * @param string $dbuser 用户  
  25. * @param string $dbpw 密码  
  26. * @param string $dbname 数据库名  
  27. * @param int $pconnect 是否持续连接  
  28. */  
  29. function dbQuery($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) {  
  30. if($pconnect) {  
  31. if(!$this->link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) {  
  32. $this->halt('Can not connect to MySQL server');  
  33. }  
  34. } else {  
  35. if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw)) {  
  36. $this->halt('Can not connect to MySQL server');  
  37. }  
  38. }  
  39. if($this->version() > '4.1') {  
  40. global $dbcharset;  
  41. if($dbcharset) {  
  42. mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link);  
  43. }  
  44. if($this->version() > '5.0.1') {  
  45. mysql_query("SET sql_mode=''", $this->link);  
  46. }  
  47. }  
  48. if($dbname) {  
  49. mysql_select_db($dbname, $this->link);  
  50. }  
  51. }  
  52. /**  
  53. * 选择数据库  
  54. *  
  55. * @param string $dbname  
  56. * @return   
  57. */  
  58. function select_db($dbname) {  
  59. return mysql_select_db($dbname, $this->link);  
  60. }  
  61. /**  
  62. * 取出结果集中一条记录  
  63. *  
  64. * @param object $query  
  65. * @param int $result_type  
  66. * @return array  
  67. */  
  68. function fetch_array($query, $result_type = MYSQL_ASSOC) {  
  69. return mysql_fetch_array($query, $result_type);  
  70. }  
  71.  
  72. /**  
  73. * 查询SQL  
  74. *  
  75. * @param string $sql  
  76. * @param string $type  
  77. * @return object  
  78. */  
  79. function query($sql, $type = '') {  
  80.  
  81. $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?  
  82. 'mysql_unbuffered_query' : 'mysql_query';  
  83. if(!($query = $func($sql, $this->link)) && $type != 'SILENT') {  
  84. $this->halt('MySQL Query Error', $sql);  
  85. }  
  86. $this->querynum++;  
  87. return $query;  
  88. }  
  89. /**  
  90. * 取影响条数  
  91. *  
  92. * @return int  
  93. */  
  94. function affected_rows() {  
  95. return mysql_affected_rows($this->link);  
  96. }  
  97. /**  
  98. * 返回错误信息  
  99. *  
  100. * @return array  
  101. */  
  102. function error() {  
  103. return (($this->link) ? mysql_error($this->link) : mysql_error());  
  104. }  
  105. /**  
  106. * 返回错误代码  
  107. *  
  108. * @return int  
  109. */  
  110. function errno() {  
  111. return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());  
  112. }  
  113. /**  
  114. * 返回查询结果  
  115. *  
  116. * @param object $query  
  117. * @param string $row  
  118. * @return mixed  
  119. */  
  120. function result($query, $row) {  
  121. $query = @mysql_result($query, $row);  
  122. return $query;  
  123. }  
  124. /**  
  125. * 结果条数  
  126. *  
  127. * @param object $query  
  128. * @return int  
  129. */  
  130. function num_rows($query) {  
  131. $query = mysql_num_rows($query);  
  132. return $query;  
  133. }  
  134. /**  
  135. * 取字段总数  
  136. *  
  137. * @param object $query  
  138. * @return int  
  139. */  
  140. function num_fields($query) {  
  141. return mysql_num_fields($query);  
  142. }  
  143. /**  
  144. * 释放结果集  
  145. *  
  146. * @param object $query  
  147. * @return bool  
  148. */  
  149. function free_result($query) {  
  150. return mysql_free_result($query);  
  151. }  
  152. /**  
  153. * 返回自增ID  
  154. *  
  155. * @return int  
  156. */  
  157. function insert_id() {  
  158. return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);  
  159. }  
  160. /**  
  161. * 从结果集中取得一行作为枚举数组  
  162. *  
  163. * @param object $query  
  164. * @return array  
  165. */  
  166. function fetch_row($query) {  
  167. $query = mysql_fetch_row($query);  
  168. return $query;  
  169. }  
  170. /**  
  171. * 从结果集中取得列信息并作为对象返回  
  172. *  
  173. * @param object $query  
  174. * @return object  
  175. */  
  176. function fetch_fields($query) {  
  177. return mysql_fetch_field($query);  
  178. }  
  179. /**  
  180. * 返回mysql版本  
  181. *  
  182. * @return string  
  183. */  
  184. function version() {  
  185. return mysql_get_server_info($this->link);  
  186. }  
  187. /**  
  188. * 关闭连接  
  189. *  
  190. * @return bool  
  191. */  
  192. function close() {  
  193. return mysql_close($this->link);  
  194. }  
  195. /**  
  196. * 输出错误信息  
  197. *  
  198. * @param string $message  
  199. * @param string $sql  
  200. */  
  201. function halt($message = '', $sql = '') {  
  202. echo $message . ' ' . $sql;  
  203. exit;  
  204. }  
  205. }  
  206. ?>   
  207.  

 

 

 

【编辑推荐】

MySQL查询缓存变量的相关解释

MySQL条件查询语句的用法

MySQL无重复查询的实现

五种常用的MySQL命令行

MySQL命令行乱码问题的解决

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/251171.html<

(0)
运维的头像运维
上一篇2025-04-28 20:38
下一篇 2025-04-28 20:39

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注