[Xunsearch PHP-SDK](http://www.xunsearch.com) v1.4.8 API 参考文档
# XSDatabasePDO
[All Packages](#)| [属性](#)| [方法(函数)](#)
| 包 | [XS.util.db](#) |
|-----|-----|
| 继承关系 | abstract class XSDatabasePDO »[XSDatabase](#) |
| 子类 | [XSDatabasePDO_MySQL](#), [XSDatabasePDO_PgSQL](#), [XSDatabasePDO_SQLite](#) |
| 版本 | 1.0.0 |
| 源代码 | [sdk/php/util/XSDataSource.class.php](https://github.com/hightman/xunsearch/blob/master/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()方法
<table class="summaryTable"><tr><td colspan="3"><div class="signature2">public void <b>close</b>()</div></td></tr></table>
**源码:**[sdk/php/util/XSDataSource.class.php#L833](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L833) (**[显示](#)**)
`public function close()
{
$this->obj = null;
}`
关闭数据库
connect()方法
<table class="summaryTable"><tr><td colspan="3"><div class="signature2">public void <b>connect</b>(array $param)</div></td></tr><tr><td class="paramNameCol">$param</td> <td class="paramTypeCol">array</td> <td class="paramDescCol">连接参数, 包含: user, pass ...</td></tr></table>
**源码:**[sdk/php/util/XSDataSource.class.php#L818](https://github.com/hightman/xunsearch/blob/master/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()方法
<table class="summaryTable"><tr><td colspan="3"><div class="signature2">abstract protected void <b>makeDsn</b>(array $param)</div></td></tr><tr><td class="paramNameCol">$param</td> <td class="paramTypeCol">array</td> <td class="paramDescCol"></td></tr></table>
**源码:**[sdk/php/util/XSDataSource.class.php#L859](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L859) (**[显示](#)**)
`abstract protected function makeDsn($param);`
提取参数内容生成 PDO 连接专用的 DSN
query()方法
<table class="summaryTable"><tr><td colspan="3"><div class="signature2">public mixed <b>query</b>(string $sql)</div></td></tr><tr><td class="paramNameCol">$sql</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">要执行的 SQL 语句</td></tr><tr><td class="paramNameCol">{return}</td> <td class="paramTypeCol">mixed</td> <td class="paramDescCol"></td></tr></table>
**源码:**[sdk/php/util/XSDataSource.class.php#L843](https://github.com/hightman/xunsearch/blob/master/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 [杭州云圣网络科技有限公司](http://www.xunsearch.com)
All Rights Reserved.
- 权威指南
- 新手上路
- 最新主要变动
- 概述
- 关于 Xunsearch PHP-SDK
- 安装、升级
- 体验 demo 项目
- 开发规范
- 开发流程
- 了解基础对象
- 基础对象概述
- XS 项目
- XSException 异常
- XSDocument 文档
- XSIndex 索引管理
- XSSearch 搜索
- XSTokenizer 分词接口
- 编写项目配置文件
- 项目配置详解
- 自定义分词器
- 编写第一个配置文件
- 管理索引
- 索引概述
- 添加文档
- 更新、修改文档
- 删除文档
- 清空索引
- 平滑重建索引
- 使用索引缓冲区
- 自定义SCWS词库
- 使用搜索
- 搜索概述
- 构建搜索语句
- 获取搜索匹配结果
- 获取搜索匹配数量
- 获取热门搜索词
- 获取相关搜索词
- 搜索建议和纠错
- 按字段值分面搜索
- 使用辅助工具
- RequiredCheck 运行检测
- Indexer 索引管理器
- Quest 搜索测试工具
- SearchSkel 生成搜索代码
- IniWizzard 配置文件向导
- Logger 搜索日志管理
- 专题
- 同义词搜索功能
- 在SDK中使用SCWS分词
- API 指南
- XS
- XS
- XSCommand
- XSComponent
- XSDocument
- XSErrorException
- XSException
- XSFieldMeta
- XSFieldScheme
- XSIndex
- XSSearch
- XSServer
- XS.tokenizer
- XSTokenizer
- XSTokenizerFull
- XSTokenizerNone
- XSTokenizerScws
- XSTokenizerSplit
- XSTokenizerXlen
- XSTokenizerXstep
- XS.util
- XSCsvDataSource
- XSDataFilter
- XSDatabaseDataSource
- XSDebugFilter
- XSJsonDataSource
- XSUtil
- XS.util.db
- XSDatabase
- XSDatabaseMySQL
- XSDatabaseMySQLI
- XSDatabasePDO
- XSDatabasePDO_MySQL
- XSDatabasePDO_PgSQL
- XSDatabasePDO_SQLite
- XSDatabasePgSQL
- XSDatabaseSQLite
- XSDatabaseSQLite3
- XS.utilf
- XSDataSource
- 其它文档
- 关于 xunsearch
- 特色和优势
- Xunsearch 架构简图
- 下载 Xunsearch
- 商业服务与支持
- XunSearch 授权许可证