php簡單操作mysql數(shù)據(jù)庫的類
來源:易賢網(wǎng) 閱讀:1039 次 日期:2015-04-20 14:48:14
溫馨提示:易賢網(wǎng)小編為您整理了“php簡單操作mysql數(shù)據(jù)庫的類”,方便廣大網(wǎng)友查閱!

具體如下:

<?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);

}

}

?>

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:php簡單操作mysql數(shù)據(jù)庫的類

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)