Xunsearch PHP-SDK v1.4.9 API 参考文档

# 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

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 语句

Copyright © 2008-2011 by 杭州云圣网络科技有限公司
All Rights Reserved.