ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[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.