文档说明

XSDatabasePDO

XS.util.db
继承关系 abstract class XSDatabasePDO » XSDatabase
子类 XSDatabasePDO_MySQL, XSDatabasePDO_PgSQL, XSDatabasePDO_SQLite
版本 1.0.0
源代码 sdk/php/util/XSDataSource.class.php
面向对象的 PDO 扩展基类

Protected 属性

隐去继承来的属性

名称类型描述定义于
obj XSDatabasePDO

Public 方法

隐去继承来的方法

名称描述定义于
close() 关闭数据库 XSDatabasePDO
connect() 连接数据库 XSDatabasePDO
query() 执行 SQL 语句 XSDatabasePDO
query1() 查询数据库首行 XSDatabase
setUtf8() 设置数据库字符集为 UTF-8 XSDatabase

Protected 方法

隐去继承来的方法

名称描述定义于
makeDsn() 提取参数内容生成 PDO 连接专用的 DSN XSDatabasePDO

属性明细

obj 属性
protected $obj;

方法明细

close() 方法
public void close()
源码: sdk/php/util/XSDataSource.class.php#L833 (显示)
public function close()
{
    
$this->obj null;
}

关闭数据库

connect() 方法
public void connect(array $param)
$param array 连接参数, 包含: user, pass ...
源码: sdk/php/util/XSDataSource.class.php#L818 (显示)
public function connect($param)
{
    
$dsn $this->makeDsn($param);
    
$user = isset($param['user']) ? $param['user'] : 'root';
    
$pass = isset($param['pass']) ? $param['pass'] : '';
    try {
        
$this->obj = new PDO($dsn$user$pass);
    } catch (
PDOException $e) {
        throw new 
XSException($e->getMessage());
    }
}

连接数据库 具体的每个类必须实现 makeDsn 来将参数转换为 dsn

参见

makeDsn() 方法
abstract protected void makeDsn(array $param)
$param array
源码: sdk/php/util/XSDataSource.class.php#L859 (显示)
abstract protected function makeDsn($param);

提取参数内容生成 PDO 连接专用的 DSN

query() 方法
public mixed query(string $sql)
$sql string 要执行的 SQL 语句
{return} mixed
源码: sdk/php/util/XSDataSource.class.php#L843 (显示)
public function query($sql)
{
    
//echo "[DEBUG] SQL: $sql\n";
    
$res $this->obj->query($sql);
    if (
$res === false) {
        
$info $this->obj->errorInfo();
        throw new 
XSException('SQLSTATE[' $info[0] . '] [' $info[1] . '] ' $info[2]);
    }
    
$ret $res->fetchAll(PDO::FETCH_ASSOC);
    return 
$ret;
}

执行 SQL 语句

留下一条评论吧!

请到论坛 登录 后刷新本页面!