XSDatabasePDO.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
  5. <meta name="language" content="zh-cn" />
  6. <link rel="stylesheet" type="text/css" href="css/style.css" />
  7. <link rel="stylesheet" type="text/css" href="css/api.css" />
  8. <script type="text/javascript" src="js/jquery.js"></script>
  9. <title>XSDatabasePDO</title>
  10. </head>
  11. <body>
  12. <div id="apiPage">
  13. <div id="apiHeader">
  14. <a href="http://www.xunsearch.com" target="_blank">Xunsearch PHP-SDK</a> v1.3.2 API 参考文档
  15. </div><!-- end of header -->
  16. <div id="content" class="api-index">
  17. <h1>XSDatabasePDO</h1>
  18. <div id="nav">
  19. <a href="index.html">All Packages</a>
  20. | <a href="#properties">属性</a>
  21. | <a href="#methods">方法(函数)</a>
  22. </div>
  23. <table class="summaryTable docClass">
  24. <colgroup>
  25. <col class="col-name" />
  26. <col class="col-value" />
  27. </colgroup>
  28. <tr>
  29. <th>包</th>
  30. <td><a href="index.html#XS.util.db">XS.util.db</a></td>
  31. </tr>
  32. <tr>
  33. <th>继承关系</th>
  34. <td>abstract class XSDatabasePDO &raquo;
  35. <a href="XSDatabase.html">XSDatabase</a></td>
  36. </tr>
  37. <tr>
  38. <th>子类</th>
  39. <td><a href="XSDatabasePDO_MySQL.html">XSDatabasePDO_MySQL</a>, <a href="XSDatabasePDO_SQLite.html">XSDatabasePDO_SQLite</a></td>
  40. </tr>
  41. <tr>
  42. <th>版本</th>
  43. <td>1.0.0</td>
  44. </tr>
  45. <tr>
  46. <th>源代码</th>
  47. <td><a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php">sdk/php/util/XSDataSource.class.php</a></td>
  48. </tr>
  49. </table>
  50. <div id="classDescription">
  51. 面向对象的 PDO 扩展基类</div>
  52. <a name="properties"></a>
  53. <div class="summary docProperty">
  54. <h2>Protected 属性</h2>
  55. <p><a href="#" class="toggle">隐去继承来的属性</a></p>
  56. <table class="summaryTable">
  57. <colgroup>
  58. <col class="col-property" />
  59. <col class="col-type" />
  60. <col class="col-description" />
  61. <col class="col-defined" />
  62. </colgroup>
  63. <tr>
  64. <th>名称</th><th>类型</th><th>描述</th><th>定义于</th>
  65. </tr>
  66. <tr id="obj">
  67. <td><a href="XSDatabasePDO.html#obj-detail">obj</a></td>
  68. <td></td>
  69. <td></td>
  70. <td>XSDatabasePDO</td>
  71. </tr>
  72. </table>
  73. </div>
  74. <a name="methods"></a>
  75. <div class="summary docMethod">
  76. <h2>Public 方法</h2>
  77. <p><a href="#" class="toggle">隐去继承来的方法</a></p>
  78. <table class="summaryTable">
  79. <colgroup>
  80. <col class="col-method" />
  81. <col class="col-description" />
  82. <col class="col-defined" />
  83. </colgroup>
  84. <tr>
  85. <th>名称</th><th>描述</th><th>定义于</th>
  86. </tr>
  87. <tr id="close">
  88. <td><a href="XSDatabasePDO.html#close-detail">close()</a></td>
  89. <td>关闭数据库</td>
  90. <td>XSDatabasePDO</td>
  91. </tr>
  92. <tr id="connect">
  93. <td><a href="XSDatabasePDO.html#connect-detail">connect()</a></td>
  94. <td>连接数据库</td>
  95. <td>XSDatabasePDO</td>
  96. </tr>
  97. <tr id="query">
  98. <td><a href="XSDatabasePDO.html#query-detail">query()</a></td>
  99. <td>执行 SQL 语句</td>
  100. <td>XSDatabasePDO</td>
  101. </tr>
  102. <tr class="inherited" id="query1">
  103. <td><a href="XSDatabase.html#query1-detail">query1()</a></td>
  104. <td>查询数据库首行</td>
  105. <td><a href="XSDatabase.html">XSDatabase</a></td>
  106. </tr>
  107. <tr class="inherited" id="setUtf8">
  108. <td><a href="XSDatabase.html#setUtf8-detail">setUtf8()</a></td>
  109. <td>设置数据库字符集为 UTF-8</td>
  110. <td><a href="XSDatabase.html">XSDatabase</a></td>
  111. </tr>
  112. </table>
  113. </div>
  114. <div class="summary docMethod">
  115. <h2>Protected 方法</h2>
  116. <p><a href="#" class="toggle">隐去继承来的方法</a></p>
  117. <table class="summaryTable">
  118. <colgroup>
  119. <col class="col-method" />
  120. <col class="col-description" />
  121. <col class="col-defined" />
  122. </colgroup>
  123. <tr>
  124. <th>名称</th><th>描述</th><th>定义于</th>
  125. </tr>
  126. <tr id="makeDsn">
  127. <td><a href="XSDatabasePDO.html#makeDsn-detail">makeDsn()</a></td>
  128. <td>提取参数内容生成 PDO 连接专用的 DSN</td>
  129. <td>XSDatabasePDO</td>
  130. </tr>
  131. </table>
  132. </div>
  133. <a name="events"></a>
  134. <h2>属性明细</h2>
  135. <div class="detailHeader" id="obj-detail">
  136. obj<span class="detailHeaderTag">
  137. 属性
  138. </span>
  139. </div>
  140. <div class="signature">
  141. protected <b>$obj</b>;</div>
  142. <p></p>
  143. <h2>方法明细</h2>
  144. <div class="detailHeader" id="close-detail">
  145. close()
  146. <span class="detailHeaderTag">
  147. 方法
  148. </span>
  149. </div>
  150. <table class="summaryTable">
  151. <tr><td colspan="3">
  152. <div class="signature2">
  153. public void <b>close</b>()</div>
  154. </td></tr>
  155. </table>
  156. <div class="sourceCode">
  157. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L777">sdk/php/util/XSDataSource.class.php#L777</a> (<b><a href="#" class="show">显示</a></b>)
  158. <div class="code"><code><span style="color: #000000">
  159. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">close</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">obj&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br />}</span>
  160. </span>
  161. </code></div>
  162. </div>
  163. <p>关闭数据库</p>
  164. <div class="detailHeader" id="connect-detail">
  165. connect()
  166. <span class="detailHeaderTag">
  167. 方法
  168. </span>
  169. </div>
  170. <table class="summaryTable">
  171. <tr><td colspan="3">
  172. <div class="signature2">
  173. public void <b>connect</b>(array $param)</div>
  174. </td></tr>
  175. <tr>
  176. <td class="paramNameCol">$param</td>
  177. <td class="paramTypeCol">array</td>
  178. <td class="paramDescCol">连接参数, 包含: user, pass ...</td>
  179. </tr>
  180. </table>
  181. <div class="sourceCode">
  182. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L759">sdk/php/util/XSDataSource.class.php#L759</a> (<b><a href="#" class="show">显示</a></b>)
  183. <div class="code"><code><span style="color: #000000">
  184. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$dsn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">makeDsn</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$user&nbsp;</span><span style="color: #007700">=&nbsp;isset(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'user'</span><span style="color: #007700">])&nbsp;?&nbsp;</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'user'</span><span style="color: #007700">]&nbsp;:&nbsp;</span><span style="color: #DD0000">'root'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$pass&nbsp;</span><span style="color: #007700">=&nbsp;isset(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'pass'</span><span style="color: #007700">])&nbsp;?&nbsp;</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'pass'</span><span style="color: #007700">]&nbsp;:&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">obj&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">PDO</span><span style="color: #007700">(</span><span style="color: #0000BB">$dsn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$user</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$pass</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(</span><span style="color: #0000BB">PDOException&nbsp;$e</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">());<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span>
  185. </span>
  186. </code></div>
  187. </div>
  188. <p>连接数据库
  189. 具体的每个类必须实现 <a href="XSDatabasePDO.html#makeDsn">makeDsn</a> 来将参数转换为 dsn</p>
  190. <div class="SeeAlso">
  191. <h4>参见</h4>
  192. <ul>
  193. <li><a href="XSDatabasePDO.html#makeDsn">makeDsn</a></li>
  194. </ul>
  195. </div>
  196. <div class="detailHeader" id="makeDsn-detail">
  197. makeDsn()
  198. <span class="detailHeaderTag">
  199. 方法
  200. </span>
  201. </div>
  202. <table class="summaryTable">
  203. <tr><td colspan="3">
  204. <div class="signature2">
  205. abstract protected void <b>makeDsn</b>(array $param)</div>
  206. </td></tr>
  207. <tr>
  208. <td class="paramNameCol">$param</td>
  209. <td class="paramTypeCol">array</td>
  210. <td class="paramDescCol"></td>
  211. </tr>
  212. </table>
  213. <div class="sourceCode">
  214. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L804">sdk/php/util/XSDataSource.class.php#L804</a> (<b><a href="#" class="show">显示</a></b>)
  215. <div class="code"><code><span style="color: #000000">
  216. <span style="color: #0000BB"></span><span style="color: #007700">abstract&nbsp;protected&nbsp;function&nbsp;</span><span style="color: #0000BB">makeDsn</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">);</span>
  217. </span>
  218. </code></div>
  219. </div>
  220. <p>提取参数内容生成 PDO 连接专用的 DSN</p>
  221. <div class="detailHeader" id="query-detail">
  222. query()
  223. <span class="detailHeaderTag">
  224. 方法
  225. </span>
  226. </div>
  227. <table class="summaryTable">
  228. <tr><td colspan="3">
  229. <div class="signature2">
  230. public mixed <b>query</b>(string $sql)</div>
  231. </td></tr>
  232. <tr>
  233. <td class="paramNameCol">$sql</td>
  234. <td class="paramTypeCol">string</td>
  235. <td class="paramDescCol">要执行的 SQL 语句</td>
  236. </tr>
  237. <tr>
  238. <td class="paramNameCol">{return}</td>
  239. <td class="paramTypeCol">mixed</td>
  240. <td class="paramDescCol"></td>
  241. </tr>
  242. </table>
  243. <div class="sourceCode">
  244. <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L787">sdk/php/util/XSDataSource.class.php#L787</a> (<b><a href="#" class="show">显示</a></b>)
  245. <div class="code"><code><span style="color: #000000">
  246. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//echo&nbsp;"[DEBUG]&nbsp;SQL:&nbsp;$sql\n";<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$res&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$res&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$info&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">errorInfo</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'SQLSTATE['&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$info</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]&nbsp;.&nbsp;</span><span style="color: #DD0000">']&nbsp;['&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$info</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]&nbsp;.&nbsp;</span><span style="color: #DD0000">']&nbsp;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$info</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$ret&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$res</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetchAll</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_ASSOC</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$ret</span><span style="color: #007700">;<br />}</span>
  247. </span>
  248. </code></div>
  249. </div>
  250. <p>执行 SQL 语句</p>
  251. </div><!-- end of content -->
  252. <div id="apiFooter">
  253. Copyright &copy; 2008-2011 by <a href="http://www.xunsearch.com" target="_blank">杭州云圣网络科技有限公司</a><br/>
  254. All Rights Reserved.<br/>
  255. </div><!-- end of footer -->
  256. <script type="text/javascript">
  257. /*<![CDATA[*/
  258. $("a.toggle").toggle(function(){
  259. $(this).text($(this).text().replace(/Hide/,'Show'));
  260. $(this).parents(".summary").find(".inherited").hide();
  261. },function(){
  262. $(this).text($(this).text().replace(/Show/,'Hide'));
  263. $(this).parents(".summary").find(".inherited").show();
  264. });
  265. $(".sourceCode a.show").toggle(function(){
  266. $(this).text($(this).text().replace(/show/,'hide'));
  267. $(this).parents(".sourceCode").find("div.code").show();
  268. },function(){
  269. $(this).text($(this).text().replace(/hide/,'show'));
  270. $(this).parents(".sourceCode").find("div.code").hide();
  271. });
  272. $("a.sourceLink").click(function(){
  273. $(this).attr('target','_blank');
  274. });
  275. /*]]>*/
  276. </script>
  277. </div><!-- end of page -->
  278. </body>
  279. </html>