首页  >  文章  >  后端开发  >  一个php调用数据库的类

一个php调用数据库的类

WBOY
WBOY原创
2016-07-25 09:10:41945浏览
  1. class DataBase

  2. {
  3. var $pConnect=FALSE;//是否使用长连接
  4. var $mHost;//数据库主机
  5. var $mDatabase;
  6. var $db; //数据库
  7. var $mUser;//数据库用户名
  8. var $mPwd;//数据库用户密码
  9. var $mConn;//连接标识
  10. var $result;// 执行query命令的结果资源标识
  11. var $num_rows;// 返回的条目数
  12. var $insert_id;// 传回最后一次使用 INSERT 指令的 ID
  13. var $affected_rows;// 传回query命令所影响的列数目
  14. // INSERT、UPDATE 或 DELETE 所影响的列 (row) 数目。
  15. // delete 如果不带where,那么则返回0
  16. //构造函数
  17. public function __construct($host,$user,$pwd,$db)
  18. {
  19. $this->mHost=$host;
  20. $this->mUser=$user;
  21. $this->mPwd=$pwd;
  22. $this->db=$db;
  23. }
  24. //数据库连接
  25. public function connect()
  26. {
  27. if($this->pConnect)
  28. $this->mConn=mysql_pconnect($this->mHost,$this->mUser,$this->mPwd);//长连接
  29. else
  30. $this->mConn=mysql_connect($this->mHost,$this->mUser,$this->mPwd);//short connect
  31. if(!$this->mConn) $this->dbhalt("不能连接数据库!");

  32. if($this->db=="") $this->db=$this->dbDatabase;
  33. if(!mysql_select_db($this->db,$this->mConn))
  34. $this->dbhalt("数据库不可用!");
  35. } // eof#dbconnect()
  36. //更改数据库

  37. public function dbChange($db){
  38. $this->db=$db;
  39. $this->connect();
  40. }
  41. //执行SQL语句,返回结果资源id

  42. public function execute($sql){
  43. $this->result=mysql_query($sql);
  44. return $this->result;
  45. }
  46. //获取数组-索引和关联

  47. public function fetchArray($resultType=MYSQL_BOTH)
  48. {
  49. return mysql_fetch_array($this->result,$resultType);
  50. }
  51. //获取关联数组
  52. public function fetchAssoc()
  53. {
  54. return mysql_fetch_assoc($this->result);
  55. }
  56. //获取数字索引数组
  57. public function fetchIndexArray()
  58. {
  59. return mysql_fetch_row($this->result);
  60. }
  61. //获取对象数组
  62. public function fetchObject()
  63. {
  64. return mysql_fetch_object($this->result);
  65. }
  66. //返回记录行数
  67. function numRows()
  68. {
  69. return mysql_num_rows($this->result);
  70. }
  71. //返回主机中所有数据库名

  72. public function dbNames()
  73. {
  74. $rsPtr=mysql_list_dbs($this->mConn);
  75. $i=0;
  76. $cnt=mysql_num_rows($rsPtr);
  77. while($i {
  78. $rs[]=mysql_db_name($rsPtr,$i);
  79. $i++;
  80. }
  81. return $rs;
  82. }
  83. function dbhalt($errmsg){

  84. $msg="数据库有问题!";
  85. $msg=$errmsg;
  86. echo"$msg";
  87. die();
  88. }
  89. //删

  90. function delete($sql){
  91. $result=$this->execute($sql,$dbbase);
  92. $this->affected_rows=mysql_affected_rows($this->dbLink);
  93. $this->free_result($result);
  94. return $this->affected_rows;
  95. }
  96. //增

  97. function insert($sql){
  98. $result=$this->execute($sql,$dbbase);
  99. $this->insert_id=mysql_insert_id($this->dbLink);
  100. $this->free_result($result);
  101. return $this->insert_id;
  102. }
  103. //改

  104. function update($sql){
  105. $result=$this->execute($sql,$dbbase);
  106. $this->affected_rows=mysql_affected_rows($this->dbLink);
  107. $this->free_result($result);
  108. return $this->affected_rows;
  109. }
  110. //关闭连接
  111. function dbclose(){
  112. mysql_close($this->dbLink);
  113. }
  114. }// end class
  115. ?>
复制代码

调用示例:

  1. include "class_database.php";

  2. $mydb=new DataBase("localhost","root","123456","test");

  3. $mydb->connect();
  4. $mydb->execute("set names GBK");
  5. $mydb->execute("select * from usrs");
  6. print_r($mydb->dbNames());
  7. ?>
复制代码


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn