一個(gè)簡(jiǎn)單的mysql操作類,實(shí)現(xiàn)數(shù)據(jù)的簡(jiǎn)單的增刪改查功能。 數(shù)據(jù)庫(kù)操縱基本流程為:
1、連接數(shù)據(jù)庫(kù)服務(wù)器 2、選擇數(shù)據(jù)庫(kù) 3、執(zhí)行SQL語句 4、處理結(jié)果集 5、打印操作信息 其中用到的相關(guān)函數(shù)有 resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] ) 連接數(shù)據(jù)庫(kù)服務(wù)器 復(fù)制代碼代碼如下: class mysql { private $db_host; //數(shù)據(jù)庫(kù)主機(jī) private $db_user; //數(shù)據(jù)庫(kù)登陸名 private $db_pwd; //數(shù)據(jù)庫(kù)登陸密碼 private $db_name; //數(shù)據(jù)庫(kù)名 private $db_charset; //數(shù)據(jù)庫(kù)字符編碼 private $db_pconn; //長(zhǎng)連接標(biāo)識(shí)位 private $debug; //調(diào)試開啟 private $conn; //數(shù)據(jù)庫(kù)連接標(biāo)識(shí) private $msg = ""; //數(shù)據(jù)庫(kù)操縱信息 // private $sql = ""; //待執(zhí)行的SQL語句 public function __construct($db_host, $db_user, $db_pwd, $db_name, $db_chaeset = 'utf8', $db_pconn = false, $debug = false) { $this->db_host = $db_host; $this->db_user = $db_user; $this->db_pwd = $db_pwd; $this->db_name = $db_name; $this->db_charset = $db_chaeset; $this->db_pconn = $db_pconn; $this->result = ''; $this->debug = $debug; $this->initConnect(); } public function initConnect() { if ($this->db_pconn) { $this->conn = @mysql_pconnect($this->db_host, $this->db_user, $this->db_pwd); } else { www. $this->conn = @mysql_connect($this->db_host, $this->db_user, $this->db_pwd); } if ($this->conn) { $this->query("SET NAMES " . $this->db_charset); } else { $this->msg = "數(shù)據(jù)庫(kù)連接出錯(cuò),錯(cuò)誤編號(hào):" . mysql_errno() . "錯(cuò)誤原因:" . mysql_error(); } $this->selectDb($this->db_name); } public function selectDb($dbname) { if ($dbname == "") { $this->db_name = $dbname; } if (!mysql_select_db($this->db_name, $this->conn)) { $this->msg = "數(shù)據(jù)庫(kù)不可用"; } } public function query($sql, $debug = false) { if (!$debug) { $this->result = @mysql_query($sql, $this->conn); } else { } if ($this->result == false) { $this->msg = "sql執(zhí)行出錯(cuò),錯(cuò)誤編號(hào):" . mysql_errno() . "錯(cuò)誤原因:" . mysql_error(); } // var_dump($this->result); } public function select($tableName, $columnName = "*", $where = "") { $sql = "SELECT " . $columnName . " FROM " . $tableName; $sql .= $where ? " WHERE " . $where : null; $this->query($sql); } public function findAll($tableName) { $sql = "SELECT * FROM $tableName"; $this->query($sql); } public function insert($tableName, $column = array()) { $columnName = ""; $columnValue = ""; foreach ($column as $key => $value) { $columnName .= $key . ","; $columnValue .= "'" . $value . "',"; } $columnName = substr($columnName, 0, strlen($columnName) - 1); $columnValue = substr($columnValue, 0, strlen($columnValue) - 1); $sql = "INSERT INTO $tableName($columnName) VALUES($columnValue)"; $this->query($sql); if($this->result){ $this->msg = "數(shù)據(jù)插入成功。新插入的id為:" . mysql_insert_id($this->conn); } } public function update($tableName, $column = array(), $where = "") { $updateValue = ""; foreach ($column as $key => $value) { $updateValue .= $key . "='" . $value . "',"; } www. $updateValue = substr($updateValue, 0, strlen($updateValue) - 1); $sql = "UPDATE $tableName SET $updateValue"; $sql .= $where ? " WHERE $where" : null; $this->query($sql); if($this->result){ $this->msg = "數(shù)據(jù)更新成功。受影響行數(shù):" . mysql_affected_rows($this->conn); } } public function delete($tableName, $where = ""){ $sql = "DELETE FROM $tableName"; $sql .= $where ? " WHERE $where" : null; $this->query($sql); if($this->result){ $this->msg = "數(shù)據(jù)刪除成功。受影響行數(shù):" . mysql_affected_rows($this->conn); } } public function fetchArray($result_type = MYSQL_BOTH){ $resultArray = array(); $i = 0; while($result = mysql_fetch_array($this->result, $result_type)){ $resultArray[$i] = $result; $i++; } return $resultArray; } // public function fetchObject(){ // return mysql_fetch_object($this->result); // } public function printMessage(){ return $this->msg; } public function freeResult(){ @mysql_free_result($this->result); } public function __destruct() { if(!empty($this->result)){ $this->freeResult(); } mysql_close($this->conn); } } 調(diào)用代碼如下 復(fù)制代碼代碼如下: require_once 'mysql_V1.class.php'; require_once 'commonFun.php'; $db = new mysql('localhost', 'root', '', "test"); //select 查 $db->select("user", "*", "username = 'system'"); $result = $db->fetchArray(MYSQL_ASSOC); print_r($result); dump($db->printMessage()); //insert 增 //$userInfo = array('username'=>'system', 'password' => md5("system")); //$db->insert("user", $userInfo); //dump($db->printMessage()); //update 改 //$userInfo = array('password' => md5("123456")); //$db->update("user", $userInfo, "id = 2"); //dump($db->printMessage()); //delete 刪 //$db->delete("user", "id = 1"); //dump($db->printMessage()); //findAll 查詢?nèi)?br> $db->findAll("user"); $result = $db->fetchArray(); dump($result); ps,個(gè)人比較喜歡tp的dump函數(shù),所以在commonFun.php文件中拷貝了友好打印函數(shù)。使用時(shí)將其改為print_r()即可。 |
|