首頁 > 後端開發 > php教程 > 一個php呼叫資料庫的類別

一個php呼叫資料庫的類別

WBOY
發布: 2016-07-25 09:10:41
原創
958 人瀏覽過
  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 fetchAss(unction) 🎜> {
  53. return mysql_fetch_assoc($this->result);
  54. }
  55. //取得數字索引陣列
  56. public function fetchIndexArray()
  57. {result);
  58. }
  59. //取得物件陣列
  60. public function fetchObject()
  61. {
  62. return mysql_fetch_object($this->result);
  63. return mysql_fetch_object($this->result);
  64. }
  65. //回傳記錄行數
  66. function numRows()
  67. {
  68. return mysql_num_rows($this->result);
  69. }
  70. //回傳主機中所有資料庫名稱

  71. public function dbNames()
  72. {
  73. $rsPtr=mysql_list_dbs($this->mConn);
  74. $i=0;
  75. $cnt= mysql_num_rows($rsPtr);
  76. while($i {
  77. $rs[]=mysql_db_name($rsPtr,$i);
  78. $i++;
  79. }
  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>affected_rows>affected_rows>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->e​​xecute("set names GBK");
  5. $mydb->e​​xecute("select * from usrs");
  6. print_r($mydb->dbNames());
  7. ?>
複製代碼


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板