需要先安装pdo_mysql扩展
<?php
/**
* pdo处理mysql数据
* Class Mysql
*/
class MysqlBuilder
{
const PARAM_PREFIX = ':qp';
private static $instance;
private $pdo;
private $dsn;
private function __construct($dbConfig)
{
try{
$host = $dbConfig['host'];
$port = $dbConfig['port'];
$user = $dbConfig['user'];
$pass = $dbConfig['pass'];
$database = $dbConfig['database'];
$charset = $dbConfig['charset'];
$this->dsn = "mysql:host=$host;port=$port;dbname=$database;charset=$charset";
$this->pdo = new \PDO($this->dsn, $user, $pass);
}catch (\PDOException $e){
die($e->getMessage());
}
}
private function __Clone()
{
}
/**
* @param $dbConfig
* @return MysqlBuilder
*/
public static function getInstance($dbConfig)
{
if(!(self::$instance instanceof self))
{
self::$instance = new self($dbConfig);
}
return self::$instance;
}
/**
* @param $sql
* @param array $params
* @return int
*/
public function execute($sql, $params = [])
{
try{
$statement = $this->prepare($sql);
$statement->execute($params);
$affectRows = $statement->rowCount();
}catch (\Exception $e){
die($e->getMessage());
}
return $affectRows;
}
/**
* 准备要执行的sql语句
* @param $sql
* @return \PDOStatement
*/
protected function prepare($sql)
{