经测试代码如下:
/**
* 操作MysqL数据库类
*
* @param
* @arrange (编程之家) jb51.cc
**/
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,-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.,-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,-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,-1);
$values = substr($values,-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,$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(',);
}
$fields = substr($fields,-2);
$values = substr($values,-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,$onDuplicate[$key]).',);
}
$onDup = substr($onDup,-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);
}
}
/*** 代码来自编程之家 jb51.cc(jb51.cc) ***/
原文地址:https://www.jb51.cc/php/528849.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。