php簡(jiǎn)單操作mysql數(shù)據(jù)庫(kù)的類
本文實(shí)例講述了php簡(jiǎn)單操作mysql數(shù)據(jù)庫(kù)的類。分享給大家供大家參考。具體如下:
<?php /** * Database class * * @version: 2.2 * @revised: 27 may 2007 * **/ class Database { var $host; var $name; var $user; var $pass; var $prefix; var $linkId; function Database($mysql) { foreach($mysql as $k => $v){ $this->$k = $v; } if(strlen($this->prefix)>0 && substr($this->prefix, -1) !== "_") $prefix .= "_"; $this->prefix = $prefix; } function getLastID() { $id = mysql_fetch_row(mysql_query("SELECT LAST_INSERT_ID()", $this->linkId)); return $id[0]; } function getPossibleValues($tableA, $whereA) { if(gettype($tableA) == "array") { $table = ""; foreach($tableA as $t) { $table .= $this->prefix.$t.", "; } $table = substr($table, 0, -2); } else $table = $this->prefix.$tableA; if(gettype($whereA) != "array") { $whereA = array($whereA); } $return = array(); foreach($whereA as $where) { $sql = mysql_query("SHOW COLUMNS FROM ".$table." LIKE '%".$where."%'"); while($arr = mysql_fetch_array($sql)) { if(strpos($arr['Type'], 'enum')===0) { $vals = substr($arr['Type'], 5, -1); } else { $vals = substr($arr['Type'], 4, -1); } $vals = str_replace("'","",$vals); $vals = explode(",",$vals); $i = 1; foreach($vals as $val) { $return[$arr['Field']][$i++] = $val; } $return[$arr['Field']]['default'] = $arr['Default']; if($arr['Null'] != "NO") $return[$arr['Field']][0] = NULL; } } return $return; } function connect() { $this->linkId = mysql_connect($this->host, $this->user, $this->pass); if(!$this->linkId) { return false; } if(mysql_select_db($this->name, $this->linkId)) return true; mysql_close($this->linkId); return false; } function runSelect($tables, $where = "1", $fieldsA = "*", $order = false, $limit = false, $offset = false, $group = false) { if(gettype($tables) == "array") { $table = ""; foreach($tables as $t) { $table .= $this->prefix.$t.", "; } $table = substr($table, 0, -2); } else $table = $this->prefix.$tables; if(gettype($fieldsA) == "array") { $fields = ""; $keys = array_keys($fieldsA); if($keys[0] != '0') { foreach($keys as $key) { $fields .= $key.' AS '.$fieldsA[$key].', '; } } else { foreach($fieldsA as $field) { $fields .= $field.', '; } } $fields = substr($fields, 0, -2); } else $fields = $fieldsA; $query = "SELECT ".$fields." FROM ".$table." WHERE ".$where. ($order!== false?" ORDER BY ".$order:($group!==false ? " GROUP BY ".$group : "")). ($limit !== false?" LIMIT ".$limit:""). ($offset !== false?" OFFSET ".$offset:""); return mysql_query($query, $this->linkId); } function runUpdate($table, $valuesA, $where = "1") { if(gettype($valuesA) == "array") { $fields = ""; $values = ""; $keys = array_keys($valuesA); foreach($keys as $key) { if($valuesA[$key] !== NULL) $values .= "`".$key."`='".str_replace("'",'\'', $valuesA[$key])."',"; else $values .= $key."=NULL,"; } $fields = substr($fields, 0, -1); $values = substr($values, 0, -1); } else $values = $valuesA; $query = "UPDATE ".$this->prefix.$table." SET ".$values." WHERE ".$where; if(mysql_query($query, $this->linkId)) return mysql_affected_rows($this->linkId); return false; } function runDelete($table, $where = "1") { if(mysql_query("DELETE FROM ".$this->prefix.$table." WHERE ".$where, $this->linkId)) return mysql_affected_rows($this->linkId); return false; } function runInsert($table, $valuesA, $onDuplicate = NULL) { if(gettype($valuesA) == "array") { $fields = ""; $values = ""; $keys = array_keys($valuesA); foreach($keys as $key) { $fields .= "`".$key."`, "; $values .= ($valuesA[$key]===NULL?"NULL, ":"'".str_replace("'", '\'', $valuesA[$key])."', "); } $fields = substr($fields, 0, -2); $values = substr($values, 0, -2); } $onDup = ""; if($onDuplicate != NULL) { $onDup = " ON DUPLICATE KEY UPDATE "; if(gettype($onDuplicate) == "array") { $keys = array_keys($onDuplicate); foreach($keys as $key) { $onDup .= '`'.$key.'`='.($onDuplicate[$key]===NULL?"NULL,":"'".str_replace("'", '\'', $onDuplicate[$key])."', "); } $onDup = substr($onDup, 0, -2); } else $onDup .= $onDuplicate; } $query = "INSERT INTO ".$this->prefix.$table.($fields!==NULL?"(".$fields.")":""). " VALUES (".$values.")".$onDup; if(mysql_query($query, $this->linkId)) return mysql_affected_rows($this->linkId); return false; } function getCells($table){ $query = "SHOW COLUMNS FROM `".$table."`"; $fields = mysql_query($query, $this->linkId) or die('hej'); return $fields; } function translateCellName($cellName){ $sql = $this->runSelect("mysql_cell_translation","mysql_name = '".$cellName."'"); $row = mysql_fetch_assoc($sql); return $row['human_name']?$row['human_name']:'<span class="faded">['.$cellName.']</span>'; } function getError() { return mysql_error($this->linkId); } function close() { mysql_close($this->linkId); } } ?>
希望本文所述對(duì)大家的php+mysql數(shù)據(jù)庫(kù)程序設(shè)計(jì)有所幫助。
- PHP訪問(wèn)MYSQL數(shù)據(jù)庫(kù)封裝類(附函數(shù)說(shuō)明)
- PHP封裝的數(shù)據(jù)庫(kù)保存session功能類
- PHP數(shù)據(jù)庫(kù)操作Helper類完整實(shí)例
- PHP基于單例模式實(shí)現(xiàn)的數(shù)據(jù)庫(kù)操作基類
- php實(shí)現(xiàn)比較全的數(shù)據(jù)庫(kù)操作類
- PHP實(shí)現(xiàn)PDO的mysql數(shù)據(jù)庫(kù)操作類
- PHP實(shí)現(xiàn)的sqlite數(shù)據(jù)庫(kù)連接類
- php實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份與還原類實(shí)例
- 一款簡(jiǎn)單實(shí)用的php操作mysql數(shù)據(jù)庫(kù)類
- 簡(jiǎn)單的php數(shù)據(jù)庫(kù)操作類代碼(增,刪,改,查)
- php實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)備份類
- PHP數(shù)據(jù)庫(kù)表操作的封裝類及用法實(shí)例詳解
相關(guān)文章
php多進(jìn)程應(yīng)用場(chǎng)景實(shí)例詳解
這篇文章主要介紹了php多進(jìn)程應(yīng)用,結(jié)合具體實(shí)例形式詳細(xì)分析了php多進(jìn)程模塊依賴pcntl擴(kuò)展安裝、使用相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-07-07php在服務(wù)器執(zhí)行exec命令失敗的解決方法
出于安全的原因,服務(wù)器是不允許php或者其他語(yǔ)言執(zhí)行exec命令的,當(dāng)你有特殊需要php在服務(wù)器執(zhí)行exec命令時(shí),你需要設(shè)置兩個(gè)地方,不然就無(wú)法執(zhí)行成功2012-03-03smarty內(nèi)置函數(shù){loteral}、{ldelim}和{rdelim}用法實(shí)例
這篇文章主要介紹了smarty內(nèi)置函數(shù){loteral}、{ldelim}和{rdelim}用法,實(shí)例分析了{(lán)loteral}、{ldelim}和{rdelim}的功能及使用技巧,需要的朋友可以參考下2015-01-01php實(shí)現(xiàn)計(jì)數(shù)器方法小結(jié)
這篇文章主要介紹了php實(shí)現(xiàn)計(jì)數(shù)器方法,總結(jié)了三款非常實(shí)用的計(jì)數(shù)器實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01mysql下創(chuàng)建字段并設(shè)置主鍵的php代碼
php+mysql創(chuàng)建字段并設(shè)置主鍵示例2010-05-05小結(jié)下MySQL中文亂碼,phpmyadmin亂碼,php亂碼 產(chǎn)生原因及其解決方法
小結(jié)下MySQL中文亂碼,phpmyadmin亂碼,php亂碼 產(chǎn)生原因及其解決方法...2007-09-09