欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

一个php调用数据库的类

程序员文章站 2022-04-27 12:22:52
...
  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. ?>
复制代码