PDO 封装类

<?php

/**
 * PDO Mysql 简单封装
 * @author Kl_PENG QQ群:207776690
 */
class PdoHelper {

    //单例模式
    private static $_instance;

    const DB_HOST = ‘localhost‘;
    const DB_PORT = ‘3306‘;
    const DB_NAME = ‘test‘;
    const DB_USER = ‘root‘;
    const DB_PASS = ‘‘;
    const DB_CHARSET = ‘utf8‘;

    protected $_sql = ‘‘;

    //构造函数
    private function __construct() {
        $this->dsn = ‘mysql:host=‘ . self::DB_HOST . ‘;port=‘ . self::DB_PORT . ‘;dbname=‘ . self::DB_NAME;
        $this->dbuser = self::DB_USER;
        $this->dbpass = self::DB_PASS;
        $this->connect();
        $this->pdo->query(‘SET NAMES ‘ . self::DB_CHARSET);
    }

    //析构函数
    public function __destruct() {
                $this->pdo = null;
        }

    //禁止克隆
    public function __clone() {

    }

    //单例对象
    public static function getInstance() {
        if (!(self::$_instance instanceof self)) {
            self::$_instance = new self;
        }
        return self::$_instance;
    }

    //连接数据库
    private function connect() {
        try {
            $this->pdo = new PDO($this->dsn,$this->dbuser,$this->dbpass);}catch(PDOException$e){exit(‘连接失败:‘.$e->getMessage());}}//返回最后一次执行的sqlpublicfunctiongetLastSql(){return$this->_sql;}//查询全部记录publicfunctiongetAll($sql=""){$obj=$this->pdo->query($sql);$this->_sql=$sql;$result=$obj->fetchAll(constant(‘PDO::FETCH_ASSOC‘));return$result;}//查询一条记录publicfunctiongetRow($sql=""){$obj=$this->pdo->query($sql);$this->_sql=$sql;$result=$obj->fetch(constant(‘PDO::FETCH_ASSOC‘),constant(‘PDO::FETCH_ORI_NEXT‘));return$result;}//执行sqlpublicfunctionexecSql($sql=""){$result=$this->pdo->exec($sql);$this->_sql=$sql;return$result;}//根据id查询记录publicfunctiongetById($table,$id,$fields=‘*‘){$sql="SELECT ".$fields." FROM ".$table." WHERE id=".$id;returnself::getRow($sql);}/**
     * 查询N个字段的值
     * @param string $table 表名
     * @param string $where 参数示例: "id = 1"
     * @param string $fields 参数示例: "id,val,..."
     */publicfunctiongetFields($table,$where,$fields=‘*‘){$sql="SELECT ".$fields." FROM ".$table." WHERE ".$where;returnself::getRow($sql);}/**
     * 添加一条记录
     * @param string $table 表名
     * @param string $data 一维数组 示例: array(‘id‘=>1,‘val‘=>2)
     */publicfunctionadd($table,$data){if(!is_array($data)||!$data){return"Error: The second parameter must be an array";}$sql="INSERT INTO ".$table." (";$fields=implode(",",array_keys($data));$values=implode(",",array_values($data));$sql.=$fields.") VALUES (".$values.")";returnself::execSql($sql);}/**
     * 添加多条记录
     * @param string $table 表名
     * @param string $data 二维数组
     * @param $data 参数示例: array(array(‘id‘=>1,‘val‘=>2),array(‘id‘=>2,‘val‘=>3))
     */publicfunctionaddAll($table,$data){if(!is_array($data)||!$data){return"Error: The second parameter must be an array";}$sql="INSERT INTO ".$table." (";$fields=implode(",",array_keys($data[0]));$values="";foreach($dataas$d){$values.=implode(",",array_values($d))."),(";}$values=rtrim($values,"),(");$sql.=$fields.") VALUES (".$values.")";returnself::execSql($sql);}/**
     * 更新记录
     * @param string $table 表名
     * @param string $set 参数示例:"field = val"
     * @param string $where 参数示例: "id = 1"
     */publicfunctionupdate($table,$set,$where){$sql="UPDATE ".$table." SET ".$set." WHERE ".$where;returnself::execSql($sql);}/**
     * 删除记录
     * @param string $table 表名
     * @param string $where 参数示例: "id = 1"
     */publicfunctiondel($table,$where){$sql="DELETE FROM ".$table." WHERE ".$where;returnself::execSql($sql);}}//调用示例$k=PdoHelper::getInstance();print_r($k->getAll("select * from table_test"));?>
时间: 2024-10-10 06:43:24

PDO 封装类的相关文章

pdo封装类

<?php //数据库连接类,不建议直接使用DB,而是对DB封装一层 //这个类不会被污染,不会被直接调用 class DB { //pdo对象 private $_pdo = null; //用于存放实例化的对象 static private $_instance = null; //公共静态方法获取实例化的对象 static protected function getInstance() { if (!(self::$_instance instanceof self)) { self::

学习到目前,自己封装的db类和pdo类

DB封装类 <?php class DBDA { public $host = "localhost"; public $uid = "root"; public $pwd = "root"; public $dbname = "mydb"; public function Query($sql,$type=1) //连接数据库,参数默认为1的时候为查询结果,其它的为增删改. { $db = new MySQLi($th

2017年7月27~~~

PHP面向对象 PDO::exec:执行一条 SQL 语句,并返回受影响的行数 所以的DML操作 全部使用exec函数,返回值为受到影响的行数,整数值 返回受修改或删除 SQL 语句影响的行数.如果没有受影响的行,则 PDO::exec() 返回 0. PDO::query():执行一条sql语句,返回一个PDO::Statement语句 对象 PDO封装类 Parse_ini_file:解析一个配置文件 加密的方式 SQL注入 PDOStatement 类 代表一条预处理语句,并在该语句被执行

PHP PDO操作MYSQL封装类

<?php /**  * auther soulence  * 调用数据类文件  * modify 2015/06/30  */ class DBConnect {     private $dbname = null;     private $pdo = null;     private $persistent = false;     private $statement = null;     private $lastInsID = null;     private static 

封装PDO

<?php //纯php,可以删掉html代码直接写 //封装类,这样用起来方便,不必每次都去再写了 //用驼峰法命名类名,首字母大写 class ChaXun { public $host="localhost";//数据库地址,可以直接赋值为"localhost" public $uid="root";//数据库用户名,用户名默认为root,可直接赋值为root public $pwd="";//用户密码,自己设置了

php数据库操作封装类

<?php /** * Desc: php操作mysql的封装类 * Author zhifeng * Date: 2015/04/15 * 连接模式:PDO */ class MMysql { protected static $_dbh = null; //静态属性,所有数据库实例共用,避免重复连接数据库 protected $_dbType = 'mysql'; protected $_pconnect = true; //是否使用长连接 protected $_host = 'local

运用PDO存储将图片、音频文件存入数据库

在数据库中创建表格的时候,有一个字段为image,用来保存图片,那么其类型就是blob,关于blob,百度百科是这样描述的 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器. 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型. BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传.下载或者存放到一个数据库). 根据Eric Raymond的说法,处理BLOB的主要思想就是

数据库的事务处理---PDO实现

事务处理用一句简单的术语称为"原子操作",即一件事情,要么全部完成,要么一个也别完成:有一种一荣俱荣,一损俱损的感觉. 最常用的就是在交易过程中,比如在网络中,甲方付费给乙方,钱确认付款,但是乙方并未确认收款,那么,甲方的账户并不会减少,乙方的账户也并不会增加. 只有当甲方确认付款,乙方确认收款,两个步骤都完成,并且不出现错误的时候,双方的账户才会改变 看代码也许更好理解 1 <?php 2 try{ 3 $pdo=new PDO("mysql:host=localho

PHP面向对象之php数据对象(PDO)——图书查看管理

首先创建相关的有关的数据库:数据库的名字我用的是books表名用的是book(下面是完整的数据库,里面的img/img01.jpg是显示的图片的路径) CREATE DATABASE books DEFAULT CHARSET=utf8;USE books; CREATE TABLE book( b_id INT PRIMARY KEY AUTO_INCREMENT, b_name VARCHAR(100) NOT NULL UNIQUE, b_img VARCHAR(50) NOT NULL,