$pdo=array("mysql:host=localhost;dbname=demo;charset=utf8","root","");
//开始连接数据库
$db = Mysql::newClass();
$db->pdoConnect($pdo);
$updateRow = array(
"user_id" => "2",
"meta_key" => "username"
);
//$db->select("wp_usermeta"); //发送sql
//$result=$db->selectOne(); //获取一条数据
//$db->selectCount(); //获取全部
//$db->update("wp_usermeta",$updateRow,"umeta_id=1"); //更新信息
//$db->insert("wp_usermeta",$updateRow); //插入数据
//echo $db->lastinsertid(); //获取插入后的id
//$db->delete("wp_usermeta","umeta_id>18"); //删除数据*/
classMysql
{private static $object;private$PDO;private$prepare;/单例模式 start
privatefunction __construct()
{
}public staticfunction newClass()
{if(!(self::$objectinstanceof self))
{
self::$object = newself;
}return self::$object;
}publicfunction __clone(){
trigger_error('Clone is not allow!',E_USER_ERROR);
}//单例模式 end
//连接pdo
publicfunction pdoConnect($address)
{try{
$this->PDO = new PDO($address[0],$address[1],$address[2]);
$this->PDO->setAttribute(PDO::ATTR_PERSISTENT,true);//设置抛出错误
$this->PDO->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//设置当字符串为空时转换为sql的null
$this->PDO->setAttribute(PDO::ATTR_ORACLE_NULLS,true);//由MySQL完成变量的转义处理
$this->PDO->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}catch(PDOException $e)
{
$this->Msg("PDO连接错误信息:".$e->getMessage());
}
}//错误提示
private function Msg($the_error=""){
$html="
mysql error";
echo $html;
exit;
}/**
* insert,delete,update操作
*
**/
publicfunction insert($table,$row)
{
$sql=$this->sqlCreate("insert",$table,$row);
$result= $this->sqlExec($sql);
}public function update($table,$row,$where)
{
$sql=$this->sqlCreate("update",$table,$row,$where);
$result= $this->sqlExec($sql);
}public function delete($table,$where)
{
$sql=$this->sqlCreate("delete",$table,"",$where);
$result= $this->sqlExec($sql);
}//服务与insert,update,delete,生成sql
private function sqlCreate($action,$table,$row="",$where="")
{
$actionArr=array("insert" => "insert into","update" => "update","delete" => "delete from");
$row= empty($row) ? "": $this->rowCreate($row);
$where = empty($where) ? "":"where".$where;
$sql= $actionArr[$action].$table.$row.$where;return$sql;
}//拼成row
privatefunction rowCreate($row)
{
$sql_row="set";foreach($row as $key=>$val)
{
$sql_row.=" ".$key."='".$val."',";
}return trim($sql_row,",");
}//执行sql,返还影响行数
privatefunction sqlExec($sql)
{try{
$result=$this->PDO->exec($sql);
}catch(PDOException $e)
{
$this->Msg($e->getMessage());
}return$result;
}//获取insert插入的id
publicfunction lastinsertid()
{return $this->PDO->lastinsertid();
}/**
* select 部分
**/
public function select($table,$fields="", $where="",$orderby="", $sort="",$limit="")
{
$fields= empty($fields) ? "*":$fields;
$sqlSelect=$this->sqlCreateSelect($table,$fields,$where,$orderby,$sort,$limit);
$this->query($sqlSelect,$where);
}//生成select sql
private function sqlCreateSelect($table,$fields="*", $where="",$orderby="", $sort="",$limit="")
{
$whereSql= empty($where)? "1=1":$this->whereCreate($where);
$orderbySql= empty($orderby)? "":"order by".$orderby." ".$sort;
$limitSql= empty($limit)? "":"limit".$limit;
$sql="select $fields from $table where".$whereSql.$orderbySql.$limitSql;return$sql;
}private function whereCreate($where)
{
$whereSql="";foreach($where as $key=>$val)
{
$whereSql.=" ".$key."=:".$key."and";
}return $whereSql."1=1";
}//执行select sql
private function query($sql,$where)
{try{
$this->prepare = $this->PDO->prepare($sql);
}catch(PDOException $e)
{
$this->Msg("预处理sql出错信息:".$e->getMessage()."
sql:(".$sql.")");
}
empty($where)? "":$this->bind($where);
$this->prepare ->execute();
}private function bind($where)
{foreach($where as $key=>$val)
{
$this->prepare->bindValue(":".$key,$val);
}
}/*select获取数据*/
//获取一条
publicfunction selectOne()
{
$result=$this->prepare->fetch(PDO::FETCH_ASSOC);return$result;
}//获取全部数据
publicfunction selectAll()
{
$result=$this->prepare->fetchAll(PDO::FETCH_ASSOC);return$result;
}//获取查询记录数
publicfunction selectCount()
{
$total= $this->prepare->rowCount();return$total;
}
}