程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 改造自discuz的MySQL查詢類

改造自discuz的MySQL查詢類

編輯: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命令行亂碼問題的解決

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved