mysql_class.php
上传用户:yttaitong
上传日期:2009-05-10
资源大小:128k
文件大小:4k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

PHP

  1. <?php
  2. /*
  3.     [BBWPS!] (C)2006-2010 小蜜蜂版权所有.
  4. This is NOT a freeware, use is subject to license terms
  5.     时间:2007年12月
  6.     描述:封装的MYSQL数据库
  7. */
  8. Class DB {
  9. var $query_num = 0;             //执行的进程数
  10. var $connect;                   //数据库服务器连接
  11. var $query;                     //执行返回的结果集
  12. var $dbhost="localhost";        //数据库服务器
  13. var $dbuser="root";             //连接用户名
  14. var $dbpw="123";             //连接密码
  15. var $dbname;                    //数据库名称
  16. var $pconnect=0;                //是否支持永久连接
  17. var $resultOfArray=array();     //查询结果是数组
  18. var $resultOfObject;            //查询结果是对象
  19. var $charset="GBK";             //数据库字符集
  20. //初始化数据库连接
  21. function DB($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0,$charset="GBK") {
  22. $this->dbhost=$dbhost;
  23. $this->dbuser=$dbuser;
  24. $this->dbpw=$dbpw;
  25. $this->dbname=$dbname;
  26. $this->pconnect=$pconnect;
  27. $this->charset=$charset;
  28. $this->connect($this->dbhost, $this->dbuser, $this->dbpw, $this->dbname, $this->pconnect);
  29. }
  30. //注销该对象
  31. function __DB(){
  32. unset($this->resultOfArray);
  33. unset($this->resultOfObject);
  34. $this->close();
  35. $this->free();
  36. unset($this->dbhost);
  37. unset($this->dbname);
  38. unset($this->pconnect);
  39. unset($this->dbpw);
  40.     unset($this->query);
  41.     unset($this->query_num);
  42.     unset($this->connect);
  43.     unset($this->dbhost);
  44. }
  45. //连接数据库服务器
  46. function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
  47. $this->pconnect==0 ? $this->connect=@mysql_connect($dbhost, $dbuser, $dbpw) : $this->connect=@mysql_pconnect($dbhost, $dbuser, $dbpw);
  48. mysql_errno()!=0 && $this->halt("Connect($pconnect) to MySQL ($dbhost,$dbuser) failed");
  49. if(mysql_get_server_info() > '4.1'){
  50.        @mysql_query("SET NAMES '$this->charset'",$this->connect);
  51.         }
  52.         if(mysql_get_server_info() > '5.0') {
  53.        @mysql_query("SET sql_mode=''",$this->connect);
  54.         }
  55. if($dbname) {
  56. if (!@mysql_select_db($dbname,$this->connect)){
  57. $this->halt('Cannot use database '.$dbname);
  58. }
  59. }
  60. }
  61. //关闭数据库服务器连接
  62. function close() {
  63. return mysql_close($this->connect);
  64. }
  65. //释放内存,注销结果集
  66. function free(){
  67. return @mysql_free_result($this->query);
  68. }
  69. //选择数据库
  70. function select_db($dbname){
  71. if (!@mysql_select_db($dbname,$this->connect)){
  72. $this->halt('Cannot use database '.$dbname);
  73. }
  74. }
  75. //执行数据库查询
  76. function query($SQL,$cache) {
  77. $query = mysql_query($SQL,$this->connect);
  78. $this->query_num++;
  79. if($cache){
  80.    $this->query=$query;
  81. }
  82. if (!$query)  $this->halt('Query Error: ' . $SQL.mysql_error());
  83. return $query;
  84. }
  85. //获得一行数据,返回形式是对象
  86. //快速的获得一行记录,结果集不保存
  87. function get_one($SQL){
  88. $query = mysql_query($SQL,$this->connect);
  89. $this->query_num++;
  90. if (!$query)  $this->halt('Update Error: ' . $SQL);
  91. return @mysql_fetch_object($query);
  92. }
  93. //更新的时候并不需要把结果集保存
  94. //和查询有点不一样但是和写入是一样的
  95. function update($SQL) {
  96. if(function_exists('mysql_unbuffered_query')){
  97. $query = mysql_unbuffered_query($SQL,$this->connect);
  98. }
  99. else{
  100. $query = mysql_query($SQL,$this->connect);
  101. }
  102. $this->query_num++;
  103. if (!$query)  $this->halt('Update Error: ' . $SQL);
  104. return true;
  105. }
  106. function insert($SQL){
  107. return $this->update($SQL);
  108. }
  109. function fetch_array($result=null,$result_type = MYSQL_ASSOC) {
  110. if($result==null){
  111.   $this->resultOfArray=@mysql_fetch_array($this->query, $result_type);
  112. }
  113. else{
  114.   $this->resultOfArray=@mysql_fetch_array($result, $result_type);
  115. }
  116. return $this->resultOfArray;
  117. }
  118. function fetch_object(){
  119. $this->resultOfObject=@mysql_fetch_object($this->query);
  120. return $this->resultOfObject;
  121. }
  122. function affected_rows() {
  123. return mysql_affected_rows();
  124. }
  125. function num_rows() {
  126. $rows = mysql_num_rows($this->query);
  127. return $rows;
  128. }
  129. function insert_id() {
  130. $id = mysql_insert_id();
  131. return $id;
  132. }
  133. function halt($msg='') {
  134. exit($msg);
  135. }
  136. }
  137. ?>