php教程

超轻量级php框架startmvc

php简单操作mysql数据库的类

更新时间:2020-03-03 23:39:46 作者:startmvc
本文实例讲述了php简单操作mysql数据库的类。分享给大家供大家参考。具体如下:<?php/

本文实例讲述了php简单操作mysql数据库的类。分享给大家供大家参考。具体如下:


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

希望本文所述对大家的php+mysql数据库程序设计有所帮助。

php mysql 数据库类