//取名为MysqlPdo.php的文件
<?php
/**
*PDO-MYSQL数据库操作类
*/
class MysqlPdo{
private $dbconfig=array(
'db'=>'mysql',
'host'=>'localhost',
'port'=>'3306',
'user'=>'root',
'pass'=>'root',
'dbname'=>'blog',
'charset'=>'utf8'
);
//单例模式 本类对象自己实例化
private static $instalce;
//PDO实例
private $db;
/**
*私有构造方法,作用:传参 连接数据库
*@param $params array 数据库连接信息
*/
private function __construct($params){
// 初始化属性
$this->dbconfig=array_merge($this->dbconfig,$params);
// 连接数据库
$this->connect();
}
/**
*获得单例模式
*@param $params array 数据库连接信息
*@return object 单例的对象
*/
public static function getInstance($params=array()){
if (!self::$instance instanceof self) {
self::$instance = new self($params);
}
return self::$instance;//返回对象
}
/**
*私有克隆
*/
private function __clone(){}
/**
*连接目标服务器
*/
private function connect(){
try{
//连接信息
$dsn="{$this->dbconfig['db']}:host={$this->dbconfig['host']};dbname={$this->dbconfig['dbname']};port={$this->dbconfig['port']};charset={$this->dbconfig['charset']}";
// 实例化PDO
$this->db=new PDO($dsn,$this->dbconfig['user'],$this->dbconfig['pass']);
}catch(PDOExecption $e){
die("数据库连接失败:{$e->getMessage()}");
}
}
/**
*执行AQL
*@param $sql string 执行的sql语句
*@return object PDOStatemment
*/
public function query($sql){
$rst=$this->db->query($sql);
if ($rst===false) {
$error=$this->db->errorInfo();
die("数据库操作失败:ERROR{$error[1]}{$error[0]}:{$error[2]}");
}
return $rst;
}
/**
*取的一行结果
*@param $sql string 执行的sql语句
*@return array 关联数组结果
*/
public function fetchRow($sql){
return $this->query($sql)->fetch(PDO::FETCH_ASSOC);
}
/**
*取所有结果
*@param $sql string 执行的sql语句
*@return array 关联数组结果
*/
public function fetchAll($sql){
return $this->query($sql)->fetchAll(PDO::FETCH_ASSOC);
}
}
使用测试:(testPDO.php)
<?php
header("Content-Type:text/html;charset=utf8");
require('pdo.php');
//实例化MysqlPdo对象
$db=MysqlPdo::getInstance();
$select="select * from test";
$insert="insert into test value(null,'term','Our term is powerfull')";
$delete='delete from test where id=4';
$update='update test set title="class" where id=3';
//查询
print_r($db->fetchALL($select));
echo "<br>";
//添加
// var_dump($db->query($insert));
//删除
// var_dump($db->query($delete));
//修改
// var_dump($db->query($update));