PHP自己封裝一個原生mysql資料庫工具類--基礎類
阿新 • • 發佈:2018-11-19
程式碼都是剛從自己編輯器上拷貝下來的,可以直接複製黏貼執行。
<?php header('content-type:text/html;charset=utf-8'); error_reporting(E_ALL ^ E_DEPRECATED); // 設計一個mysql資料庫操作類 $config=array( 'host'=>"localhost", 'port'=>3306, 'user'=>"root", 'pass'=>'', 'char'=>"utf8", 'db'=>"test" ); // 把未來將要傳過來的資料庫配置檔案編輯成一個數組,以陣列形式傳遞引數給類 class MYSQL{ private $link=null; private $host; // 考慮到以後要每個頁面可能都要連線一次資料庫,所以就直接在例項化物件的時候直接把各個配置的資訊資料儲存到對應的這個物件中 以待下次直接new一個物件的時候就可以使用 private $port; private $user; private $pass; private $char; private $db; function __construct($config){ //因為是建構函式所以 一例項化 就會連線上這個資料庫 把陣列載入進來 // 把連線過來的資料庫資訊儲存起來,留以它用 $this->host=!empty($config['host']) ? $config['host'] : "localhost"; $this->port=!empty($config['port']) ? $config['port'] : "3306"; $this->user=!empty($config['user']) ? $config['user'] : "root"; $this->pass=!empty($config['pass']) ? $config['pass'] : ""; $this->char=!empty($config['char']) ? $config['char'] : "utf8"; $this->db=!empty($config['db']) ? $config['db'] : "test"; //三元運算子用上了,意思為: 如果對應的那個陣列中的某個單元不為空,則把它的值賦上,否則 直接採用預設的值。
[email protected]_connect("{$config['host']}:{$config['port']}","{$config['user']}","{$config['pass']}"); //連線資料庫的語句 資料是陣列中的對應單元的資料 $this->charset($this->char); // 考慮到可能會改變資料庫或者字元編碼,所以在這個建構函式中還要直接執行這個另外選用資料庫或者選取字元編碼的操作 $this->usedb($this->db); } function charset($charset){ // 設定字元編碼 mysql_query("set names {$charset} "); } function usedb($db){ //更改要使用的資料庫 mysql_query("use {$db}"); echo "已切換資料庫 {$db} <br>"; } function closeDB(){ //關閉資料庫 mysql_close($this->link); echo "已關閉資料庫連線"; } function exec($chaxun){ // 返回增,刪,改語句的返回真假結果 $result= mysql_query($chaxun); //把增,刪,改執行的語句結果賦值給result 結果是boolen型別的,已測試過 if($result===false){ // 語句執行失敗,處理失敗 返回錯誤代號 echo mysql_error($link); echo "資料執行失敗"; exit(); }else{ //語句執行成功,返回true echo "資料執行成功了"; return true; } } function getOneRow($sql){ //執行一條返回一行資料的語句,返回一維陣列 $result = mysql_query($sql); $arr=mysql_fetch_assoc($result); return $arr; } } ?>
上面的程式碼可以起名 ‘mysql_tool.php’然後引入其他檔案進行呼叫,如下
<?php require "./mysql_tool.php"; $obj=new MYSQL($config); // $obj->exec($sql); $sql1="select name from stu "; $obj->getRows($sql1); var_dump($obj->getOneRow($sql1)); echo "<br>"; var_dump($obj->getRows($sql1)); echo "<br>"; var_dump($obj->getOnedata($sql1)); echo "<br>"; echo $obj->getOnedata($sql1); ?>