- <?php
- /**
- * Description of pdo
- *
- * @author Administrator
- */
- class ZcPdo {
- public $dbh = ""; //全局连接Object;
- //public $sth = ""; //预处理参数
- private $dsn = "";
- private $user = "";
- private $password = "";
- public $returnAy = array('errcode' => '','errmsg' => '');
- //构造函数 - 初始化连接
- public function __construct($dsn, $user, $password) {
- $this->dsn = $dsn;
- $this->user = $user;
- $this->password = $password;
- $this->pdoConnect();
- }
- private function pdoConnect(){
- try {
- $this->dbh = new PDO($this->dsn, $this->user, $this->password);
- return $this->dbh;
- }
- catch (PDOException $e) {
- echo 'Connection failed: ' . $e->getMessage();
- exit();
- }
- }
- //设置PDO参数
- public function zcAttribute($attribute, $value){
- $this->dbh->setAttribute($attribute, $value);
- }
- public function zcLastId($name = NULL){
- return $this->dbh->lastInsertId($name);
- }
- //数据库单语句执行操作
- public function zcExec($param) {
- try {
- $rows = $this->dbh->exec($param);//影响行数
- return $this->zcLog(TRUE, $rows);
- }
- catch (PDOException $e) {
- return $this->zcLog(FALSE, $e->getMessage());
- }
- }
- //格式化数据
- public function zcQuote($string){
- return $this->dbh->quote($string);
- }
- //批量处理格式化数据
- public function zcBatchQuote($data){
- $result = "";
- if(!empty($data) && (is_array($data) || is_object($data))){
- foreach($data as $key => $value){
- if(!empty($value) && (is_array($value) || is_object($value))){
- $result[$key] = $this->zcBatchQuote($value);
- }
- else{
- $result[$key] = $this->zcQuote($value);
- }
- }
- }
- else {
- $result = $this->zcQuote($data);
- }
- return $result;
- }
- //数据库预处理操作 - 获取全部数据
- public function zcFetchAll($statement ,$parameter = NULL ,$type = PDO::FETCH_ASSOC){
- try{
- $sth = $this->dbh->prepare($statement);
- //$sth->execute($parameter);
- $sth->execute($this->zcBatchQuote($parameter));
- $result = $sth->fetchAll($type);
- if(!empty($result) && is_array($result)){
- return $this->zcLog(TRUE, $result);
- }
- else{
- return $this->zcLog(TRUE, NULL);
- }
- }
- catch (PDOException $e) {
- return $this->zcLog(FALSE, $e->getMessage());
- }
- }
- //数据库预处理操作 - 获取一行数据
- public function zcFetchRow($statement ,$parameter = NULL ,$type = PDO::FETCH_ASSOC){
- try{
- $sth = $this->dbh->prepare($statement);
- $sth->execute($this->zcBatchQuote($parameter));
- $result = $sth->fetch($type);
- if(!empty($result) && is_array($result)){
- return $this->zcLog(TRUE, $result);
- }
- else{
- return $this->zcLog(TRUE, NULL);
- }
- }
- catch (PDOException $e) {
- return $this->zcLog(FALSE, $e->getMessage());
- }
- }
- //数据库预处理操作 - 获取一个数据
- public function zcFetchOne($statement ,$parameter = NULL){
- try{
- $sth = $this->dbh->prepare($statement);
- $sth->execute($this->zcBatchQuote($parameter));
- $result = $sth->fetch(PDO::FETCH_NUM);
- if(!empty($result) && is_array($result)){
- return $this->zcLog(TRUE, $result[0]);
- }
- else{
- return $this->zcLog(TRUE, NULL);
- }
- }
- catch (PDOException $e) {
- return $this->zcLog(FALSE, $e->getMessage());
- }
- }
- //开始事务
- public function zcBegin(){
- $this->dbh->beginTransaction();
- }
- //提交事务
- public function zcCommit(){
- $this->dbh->commit();
- }
- //回滚事务
- public function zcRollBack(){
- $this->dbh->rollBack();
- }
- //预处理事务执行语句
- public function zcPtmTstQuery($statement ,$parameter = NULL){
- try{
- $this->zcBegin();
- $result = $this->dbh->prepare($statement)->execute($parameter);
- $this->zcCommit();
- return $this->zcLog(TRUE, $result);
- }
- catch (PDOException $e) {
- $this->zcRollBack();
- return $this->zcLog(FALSE, $e->getMessage());
- }
- }
- //预处理执行语句
- public function zcPtmQuery($statement ,$parameter = NULL){
- try{
- $result = $this->dbh->prepare($statement)->execute($parameter);
- return $this->zcLog(TRUE, $result);
- }
- catch (PDOException $e) {
- return $this->zcLog(FALSE, $e->getMessage());
- }
- }
- //Query执行
- public function zcQuery($statement,$type = PDO::FETCH_ASSOC){
- try{
- $result = $this->dbh->query($statement,$type);
- return $this->zcLog(TRUE, $result);
- }
- catch (PDOException $e) {
- return $this->zcLog(FALSE, $e->getMessage());
- }
- }
- //日志LOG
- public function zcLog($errcode , $errmsg){
- $this->returnAy = array();
- $this->returnAy['errcode'] = $errcode;
- $this->returnAy['errmsg'] = $errmsg;
- $this->returnAy['errtime'] = date("Y-m-d H:i:s",time());
- return $this->returnAy;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/0304201512089.html
来源: http://www.codesnippet.cn/detail/0304201512089.html