pdo mysql 封装_封装一个PDO数据库操作类代码

数据库PDO操作类,网上好多朋友需要的,可以参考下。

/**

* 数据库PDO操作

*/

class MysqlPdo {

public static $PDOStatement = null;

/**

* 数据库的连接参数配置

* @var array

* @access public

*/

public static $config = array();

/**

* 是否使用永久连接

* @var bool

* @access public

*/

public static $pconnect = false;

/**

* 错误信息

* @var string

* @access public

*/

public static $error = '';

/**

* 单件模式,保存Pdo类唯一实例,数据库的连接资源

* @var object

* @access public

*/

protected static $link;

/**

* 是否已经连接数据库

* @var bool

* @access public

*/

public static $connected = false;

/**

* 数据库版本

* @var string

* @access public

*/

public static $dbVersion = null;

/**

* 当前SQL语句

* @var string

* @access public

*/

public static $queryStr = '';

/**

* 最后插入记录的ID

* @var integer

* @access public

*/

public static $lastInsertId = null;

/**

* 返回影响记录数

* @var integer

* @access public

*/

public static $numRows = 0;

// 事务指令数

public static $transTimes = 0;

/**

* 构造函数,

* @param $dbconfig 数据库连接相关信息,array('ServerName', 'UserName', 'Password', 'DefaultDb', 'DB_Port', 'DB_TYPE')

*/

public function __construct($dbConfig=''){

if (!class_exists('PDO')) throw_exception("不支持:PDO");

//若没有传输任何参数,则使用默认的数据定义

if (!is_array($dbConfig)) {

$dbConfig = array(

'hostname' => DB_HOST,

'username' => DB_USER,

'password' => DB_PWD,

'database' => DB_NAME,

'hostport' => DB_PORT,

'dbms' => DB_TYPE,

'dsn' => DB_TYPE.":host=".DB_HOST.";dbname=".DB_NAME

);

}

if(empty($dbConfig['hostname'])) throw_exception("没有定义数据库配置");

self::$config = $dbConfig;

if(empty(self::$config['params'])) self::$config['params'] = array();

/*************************************华丽分隔线*******************************************/

if (!isset(self::$link) ) {

$configs = self::$config;

if(self::$pconnect) {

$configs['params'][constant('PDO::ATTR_PERSISTENT')] = true;

}

try {

self::$link = new PDO( $configs['dsn'], $configs['username'], $configs['password'],$configs['params']);

} catch (PDOException $e) {

throw_exception($e->getMessage());

//exit('连接失败:'.$e->getMessage());

}

if(!self::$link) {

throw_exception('PDO CONNECT ERROR');

return false;

}

self::$link->exec('SET NAMES '.DB_CHARSET);

self::$dbVersion = self::$link->getAttribute(constant("PDO::ATTR_SERVER_INFO"));

// 标记连接成功

self::$connected = true;

// 注销数据库连接配置信息

unset($configs);

}

return self::$link;

}

/**

* 释放查询结果

* @access function

*/

static function free() {

self::$PDOStatement = null;

}

/*********************************************************************************************************/

/* 数据库操作 */

/*********************************************************************************************************/

/**

* 获得所有的查询数据

* @access function

* @return array

*/

static function getAll($sql=null) {

self::query($sql);

//返回数据集

$result = self::$PDOStatement->fetchAll(constant('PDO::FETCH_ASSOC'));

return $result;

}

/**

* 获得一条查询结果

* @access function

* @param string $sql SQL指令

* @param integer $seek 指针位置

* @return array

*/

static function getRow($sql=null) {

self::query($sql);

// 返回数组集

$result = self::$PDOStatement->fetch(constant('PDO::FETCH_ASSOC'),constant('PDO::FETCH_ORI_NEXT'));

return $result;

}

/**

* 执行sql语句,自动判断进行查询或者执行操作

* @access function

* @param string $sql SQL指令

* @return mixed

*/

static function doSql($sql='') {

if(self::isMainIps($sql)) {

return self::execute($sql);

}else {

return self::g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值