<?php
define('MY_DBHOST', 'localhost');
define('MY_PORT', '3306');
define('MY_DBUSER', 'root');
define('MY_DBPW', '123456');
define('MY_DBNAME', 'test');
define('MY_DBCHARSET', 'utf8');
define('MY_DBTABLEPRE', 'pre_');
function M($table,$database='',$pre=''){
if(empty($database)){
$db=new MYSQL(MY_DBHOST,MY_PORT,MY_DBUSER,MY_DBPW,MY_DBNAME,MY_DBTABLEPRE,MY_DBCHARSET);
}
else{
$db=new MYSQL(MY_DBHOST,MY_PORT,MY_DBUSER,MY_DBPW,$database,$pre,MY_DBCHARSET);
}
return $db->table($table);
}
/**
* MySQL 数据库操作工具类, 方便数据库操作.
*/
class MYSQL{
private $conn;
private $pre;
private $where;
private $limit;
private $order;
private $field;
public function __construct($host,$port,$user,$pw,$db,$pre,$charset){
if(!$this->conn){
$server = $host.':'.$port;
$this->conn = mysql_connect($server, $user, $pw, true) or die('connect db error');
$this->pre=$pre;
mysql_select_db($db,$this->conn) or die('select db error');
if($charset){
mysql_query("set names " . $charset, $this->conn);
}
}
}
public function __destruct(){
if($this->conn){
mysql_close($this->conn);
}
}
/*
快捷找到一行记录
*/
public function find(){
$result=$this->query($this->sql());
if(!$result){
return false;
}
else{
return $result[0];
}
}
/*
选择所有的资源
*/
public function select(){
return $this->query($this->sql());
}
/*
获取某行记录的某个字段
*/
public function getField($field){
$this->field=$field;
$result=$this->query($this->sql());
if(!$result){
return false;
}
return $result[0][$field];
}
/*
设置某行记录的某个字段
*/
public function setField($field,$value){
$sql='update '.$this->table.' set `'.$field.'`='.'\''.$value.'\' '.$this->where;
$this->execute($sql);
}
/*
统计
*/
public function count(){
$sql='select count(*) as ask_count from '.$this->table.' '.$this->where.' limit 0,1';
$result=$this->query($sql);
return $result[0]['ask_count'];
}
public function sum($field){
$sql='select sum('.$field.') as ask_sum from '.$this->table.' '.$this->where;
$result=$this->query($sql);
return $result[0]['ask_sum'];
}
/*
添加记录
*/
public function add($data){
$fields=array();
$values=array();
foreach($data as $k=>$v){
$fields[]='`'.$k.'`';
$values[]='\''.$v.'\'';
}
$sql="insert ".$this->table.' ('.implode(',',$fields).') values ('.implode(',',$values).')';
$this->execute($sql);
return mysql_insert_id($this->conn);
}
/*
更新添加记录
*/
public function readd($data){
$fields=array();
$values=array();
foreach($data as $k=>$v){
$fields[]='`'.$k.'`';
$values[]='\''.$v.'\'';
}
$sql="replace into ".$this->table.' ('.implode(',',$fields).') values ('.implode(',',$values).')';
$this->execute($sql);
return mysql_insert_id($this->conn);
}
/*
更新记录
*/
public function save($data){
$new=array();
foreach($data as $k=>$v){
$new[]='`'.$k.'`=\''.$v.'\'';
}
$sql='update '.$this->table.' set '.implode(',',$new).' '.$this->where;
$this->execute($sql);
}
/*
删除记录
*/
public function delete(){
$sql='delete from '.$this->table.' '.$this->where;
$this->execute($sql);
}
/*
执行原生的SQL
*/
public function query($sql){
$result=mysql_query($sql,$this->conn);
if($result === false){
return false;
}
if(mysql_num_rows($result)==0){
return false;
}
$data=array();
while($row=mysql_fetch_assoc($result)){
$data[]=$row;
}
$this->resetsql();
return $data;
}
/*
生成SQL并执行返回结果资源
*/
public function execute($sql){
mysql_query($sql,$this->conn);
$this->resetsql();
}
/*
设置where
*/
public function where($map){
$this->where='where '.$map;
return $this;
}
public function error(){
return mysql_error($this->conn);
}
/*
设置order
*/
public function order($order){
$this->order='order by '.$order;
return $this;
}
/*
设置limit
*/
public function limit($limit){
if(is_numeric($limit)){
$this->limit='limit 0,'.$limit;
}
else{
$this->limit='limit '.$limit;
}
return $this;
}
/*
设置field
*/
public function field($field){
$this->field=$field;
return $this;
}
/*
设置table
*/
public function table($table){
$this->table=$this->pre.$table;
return $this;
}
/*
生成查询sql
*/
public function sql(){
$sql='select';
if($this->field){
$sql.=' '.$this->field.' from';
}
else{
$sql.=' * from';
}
$sql.=' '.$this->table;
if($this->where){
$sql.=' '.$this->where;
}
if($this->order){
$sql.=' '.$this->order;
}
if($this->limit){
$sql.=' '.$this->limit;
}
//echo $sql.'<br>';
return $sql;
}
/*
查询完毕以后清空
*/
Public function resetsql(){
$this->field='';
$this->order='';
$this->limit='';
$this->where='';
}
/*
解析MYSQL的返回结果
*/
private function parseResult($result,$find=false,$reset=true){
if(mysql_num_rows($result)==0){
return false;
}
if($find){
return mysql_fetch_assoc($result);
}
$data=array();
while($row=mysql_fetch_assoc($result)){
$data[]=$row;
}
if($reset){
$this->resetsql();
}
return $data;
}
}
?>