| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
- <meta name="language" content="zh-cn" />
- <link rel="stylesheet" type="text/css" href="css/style.css" />
- <link rel="stylesheet" type="text/css" href="css/api.css" />
- <script type="text/javascript" src="js/jquery.js"></script>
- <title>XSDatabaseDataSource</title>
- </head>
- <body>
- <div id="apiPage">
- <div id="apiHeader">
- <a href="http://www.xunsearch.com" target="_blank">Xunsearch PHP-SDK</a> v1.3.2 API 参考文档
- </div><!-- end of header -->
- <div id="content" class="api-index">
- <h1>XSDatabaseDataSource</h1>
- <div id="nav">
- <a href="index.html">All Packages</a>
- | <a href="#properties">属性</a>
- | <a href="#methods">方法(函数)</a>
- </div>
- <table class="summaryTable docClass">
- <colgroup>
- <col class="col-name" />
- <col class="col-value" />
- </colgroup>
- <tr>
- <th>包</th>
- <td><a href="index.html#XS.util">XS.util</a></td>
- </tr>
- <tr>
- <th>继承关系</th>
- <td>class XSDatabaseDataSource »
- <a href="XSDataSource.html">XSDataSource</a></td>
- </tr>
- <tr>
- <th>版本</th>
- <td>1.0.0</td>
- </tr>
- <tr>
- <th>源代码</th>
- <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>
- </tr>
- </table>
- <div id="classDescription">
- SQL 数据库源</div>
- <a name="properties"></a>
- <div class="summary docProperty">
- <h2>Protected 属性</h2>
- <p><a href="#" class="toggle">隐去继承来的属性</a></p>
- <table class="summaryTable">
- <colgroup>
- <col class="col-property" />
- <col class="col-type" />
- <col class="col-description" />
- <col class="col-defined" />
- </colgroup>
- <tr>
- <th>名称</th><th>类型</th><th>描述</th><th>定义于</th>
- </tr>
- <tr class="inherited" id="arg">
- <td><a href="XSDataSource.html#arg-detail">arg</a></td>
- <td></td>
- <td></td>
- <td><a href="XSDataSource.html">XSDataSource</a></td>
- </tr>
- <tr class="inherited" id="type">
- <td><a href="XSDataSource.html#type-detail">type</a></td>
- <td></td>
- <td></td>
- <td><a href="XSDataSource.html">XSDataSource</a></td>
- </tr>
- </table>
- </div>
- <a name="methods"></a>
- <div class="summary docMethod">
- <h2>Public 方法</h2>
- <p><a href="#" class="toggle">隐去继承来的方法</a></p>
- <table class="summaryTable">
- <colgroup>
- <col class="col-method" />
- <col class="col-description" />
- <col class="col-defined" />
- </colgroup>
- <tr>
- <th>名称</th><th>描述</th><th>定义于</th>
- </tr>
- <tr class="inherited" id="__construct">
- <td><a href="XSDataSource.html#__construct-detail">__construct()</a></td>
- <td>构造函数</td>
- <td><a href="XSDataSource.html">XSDataSource</a></td>
- </tr>
- <tr id="getCharset">
- <td><a href="XSDatabaseDataSource.html#getCharset-detail">getCharset()</a></td>
- <td>返回数据库输出字符集</td>
- <td>XSDatabaseDataSource</td>
- </tr>
- <tr class="inherited" id="getData">
- <td><a href="XSDataSource.html#getData-detail">getData()</a></td>
- <td>从数据源中提取一条数据</td>
- <td><a href="XSDataSource.html">XSDataSource</a></td>
- </tr>
- <tr class="inherited" id="instance">
- <td><a href="XSDataSource.html#instance-detail">instance()</a></td>
- <td>取得数据源对象实例</td>
- <td><a href="XSDataSource.html">XSDataSource</a></td>
- </tr>
- </table>
- </div>
- <div class="summary docMethod">
- <h2>Protected 方法</h2>
- <p><a href="#" class="toggle">隐去继承来的方法</a></p>
- <table class="summaryTable">
- <colgroup>
- <col class="col-method" />
- <col class="col-description" />
- <col class="col-defined" />
- </colgroup>
- <tr>
- <th>名称</th><th>描述</th><th>定义于</th>
- </tr>
- <tr id="deinit">
- <td><a href="XSDatabaseDataSource.html#deinit-detail">deinit()</a></td>
- <td></td>
- <td>XSDatabaseDataSource</td>
- </tr>
- <tr id="getDataList">
- <td><a href="XSDatabaseDataSource.html#getDataList-detail">getDataList()</a></td>
- <td>返回一批数据</td>
- <td>XSDatabaseDataSource</td>
- </tr>
- <tr id="init">
- <td><a href="XSDatabaseDataSource.html#init-detail">init()</a></td>
- <td></td>
- <td>XSDatabaseDataSource</td>
- </tr>
- </table>
- </div>
- <a name="events"></a>
- <h2>方法明细</h2>
- <div class="detailHeader" id="deinit-detail">
- deinit()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- protected void <b>deinit</b>()</div>
- </td></tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L218">sdk/php/util/XSDataSource.class.php#L218</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">protected function </span><span style="color: #0000BB">deinit</span><span style="color: #007700">()<br />{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">db</span><span style="color: #007700">-></span><span style="color: #0000BB">close</span><span style="color: #007700">();<br />}</span>
- </span>
- </code></div>
- </div>
- <p></p>
- <div class="detailHeader" id="getCharset-detail">
- getCharset()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public mixed <b>getCharset</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">mixed</td>
- <td class="paramDescCol">如果数据库不支持 UTF-8 转换则返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L136">sdk/php/util/XSDataSource.class.php#L136</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">getCharset</span><span style="color: #007700">()<br />{<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">db</span><span style="color: #007700">-></span><span style="color: #0000BB">setUtf8</span><span style="color: #007700">())<br /> return </span><span style="color: #DD0000">'UTF-8'</span><span style="color: #007700">;<br /> return </span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">getCharset</span><span style="color: #007700">();<br />}</span>
- </span>
- </code></div>
- </div>
- <p>返回数据库输出字符集</p>
- <div class="detailHeader" id="getDataList-detail">
- getDataList()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- protected 结果数组, <b>getDataList</b>()</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">结果数组,</td>
- <td class="paramDescCol">没有更多数据时返回 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L227">sdk/php/util/XSDataSource.class.php#L227</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">protected function </span><span style="color: #0000BB">getDataList</span><span style="color: #007700">()<br />{<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">limit </span><span style="color: #007700"><= </span><span style="color: #0000BB">0</span><span style="color: #007700">)<br /> return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">sql </span><span style="color: #007700">. </span><span style="color: #DD0000">' LIMIT ' </span><span style="color: #007700">. </span><span style="color: #0000BB">min</span><span style="color: #007700">(</span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">PLIMIT</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">limit</span><span style="color: #007700">) . </span><span style="color: #DD0000">' OFFSET ' </span><span style="color: #007700">. </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">offset</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">limit </span><span style="color: #007700">-= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">PLIMIT</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">offset </span><span style="color: #007700">+= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">PLIMIT</span><span style="color: #007700">;<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">db</span><span style="color: #007700">-></span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>返回一批数据</p>
- <div class="detailHeader" id="init-detail">
- init()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- protected void <b>init</b>()</div>
- </td></tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSDataSource.class.php#L143">sdk/php/util/XSDataSource.class.php#L143</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">protected function </span><span style="color: #0000BB">init</span><span style="color: #007700">()<br />{<br /> if (</span><span style="color: #0000BB">strstr</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type</span><span style="color: #007700">, </span><span style="color: #DD0000">'sqlite'</span><span style="color: #007700">))<br /> {<br /> </span><span style="color: #0000BB">$pos </span><span style="color: #007700">= </span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type</span><span style="color: #007700">, </span><span style="color: #DD0000">':'</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$param </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'scheme' </span><span style="color: #007700">=> </span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$pos</span><span style="color: #007700">));<br /> </span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'path'</span><span style="color: #007700">] = </span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type</span><span style="color: #007700">, </span><span style="color: #0000BB">$pos </span><span style="color: #007700">+ (</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type</span><span style="color: #007700">, </span><span style="color: #0000BB">$pos </span><span style="color: #007700">+ </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">) === </span><span style="color: #DD0000">'//' </span><span style="color: #007700">? </span><span style="color: #0000BB">3 </span><span style="color: #007700">: </span><span style="color: #0000BB">1</span><span style="color: #007700">));<br /> }<br /> else if (!(</span><span style="color: #0000BB">$param </span><span style="color: #007700">= </span><span style="color: #0000BB">parse_url</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">type</span><span style="color: #007700">)))<br /> {<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'Wrong format of DB connection parameter'</span><span style="color: #007700">);<br /> }<br /> else<br /> {<br /> if (isset(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'user'</span><span style="color: #007700">]))<br /> </span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'user'</span><span style="color: #007700">] = </span><span style="color: #0000BB">urldecode</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'user'</span><span style="color: #007700">]);<br /> if (isset(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'pass'</span><span style="color: #007700">]))<br /> </span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'pass'</span><span style="color: #007700">] = </span><span style="color: #0000BB">urldecode</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'pass'</span><span style="color: #007700">]);<br /> </span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'path'</span><span style="color: #007700">] = isset(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'path'</span><span style="color: #007700">]) ? </span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'path'</span><span style="color: #007700">], </span><span style="color: #DD0000">'/'</span><span style="color: #007700">) : </span><span style="color: #DD0000">''</span><span style="color: #007700">;<br /> if (empty(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'path'</span><span style="color: #007700">]))<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'Not contain dbname of DB connection parameter'</span><span style="color: #007700">);<br /> if ((</span><span style="color: #0000BB">$pos </span><span style="color: #007700">= </span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'path'</span><span style="color: #007700">], </span><span style="color: #DD0000">'/'</span><span style="color: #007700">)) === </span><span style="color: #0000BB">false</span><span style="color: #007700">)<br /> </span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'dbname'</span><span style="color: #007700">] = </span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'path'</span><span style="color: #007700">];<br /> else<br /> {<br /> </span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'dbname'</span><span style="color: #007700">] = </span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'path'</span><span style="color: #007700">], </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$pos</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'table'</span><span style="color: #007700">] = </span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'path'</span><span style="color: #007700">], </span><span style="color: #0000BB">$pos </span><span style="color: #007700">+ </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /> }<br /> }<br /><br /> </span><span style="color: #FF8000">// get driver<br /> </span><span style="color: #0000BB">$driver </span><span style="color: #007700">= </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">getDriverName</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'scheme'</span><span style="color: #007700">]);<br /> </span><span style="color: #0000BB">$class </span><span style="color: #007700">= </span><span style="color: #DD0000">'XSDatabase' </span><span style="color: #007700">. </span><span style="color: #0000BB">ucfirst</span><span style="color: #007700">(</span><span style="color: #0000BB">$driver</span><span style="color: #007700">);<br /> if (!</span><span style="color: #0000BB">class_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$class</span><span style="color: #007700">))<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">"Undefined database driver: '</span><span style="color: #0000BB">$driver</span><span style="color: #DD0000">'"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">db </span><span style="color: #007700">= new </span><span style="color: #0000BB">$class</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">db</span><span style="color: #007700">-></span><span style="color: #0000BB">connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$param</span><span style="color: #007700">);<br /><br /> </span><span style="color: #FF8000">// set SQL & parse limit/offset<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">limit </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">offset </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">arg</span><span style="color: #007700">;<br /> if (empty(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">))<br /> {<br /> if (!isset(</span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'table'</span><span style="color: #007700">]))<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #DD0000">'Not specified any query SQL or db table'</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">'SELECT * FROM ' </span><span style="color: #007700">. </span><span style="color: #0000BB">$param</span><span style="color: #007700">[</span><span style="color: #DD0000">'table'</span><span style="color: #007700">];<br /> }<br /> else if (</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #DD0000">'/ limit\s+(\d+)(?:\s*,\s*(\d+)|\s+offset\s+(\d+))?\s*$/i'</span><span style="color: #007700">, </span><span style="color: #0000BB">$sql</span><span style="color: #007700">, </span><span style="color: #0000BB">$match</span><span style="color: #007700">))<br /> {<br /> if (isset(</span><span style="color: #0000BB">$match</span><span style="color: #007700">[</span><span style="color: #0000BB">3</span><span style="color: #007700">])) </span><span style="color: #FF8000">// LIMIT xxx OFFSET yyy<br /> </span><span style="color: #007700">{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">offset </span><span style="color: #007700">= </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$match</span><span style="color: #007700">[</span><span style="color: #0000BB">3</span><span style="color: #007700">]);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">limit </span><span style="color: #007700">= </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$match</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]);<br /> }<br /> else if (isset(</span><span style="color: #0000BB">$match</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">])) </span><span style="color: #FF8000">// LIMIT yyy, xxx<br /> </span><span style="color: #007700">{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">offset </span><span style="color: #007700">= </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$match</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">limit </span><span style="color: #007700">= </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$match</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]);<br /> }<br /> else </span><span style="color: #FF8000">// lIMIT xxx<br /> </span><span style="color: #007700">{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">limit </span><span style="color: #007700">= </span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">$match</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]);<br /> }<br /> </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">) - </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$match</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]));<br /> }<br /><br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">sql </span><span style="color: #007700">= </span><span style="color: #0000BB">$sql</span><span style="color: #007700">;<br /> if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">limit </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #0000BB">preg_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">'/SELECT\s+.+?FROM\s/i'</span><span style="color: #007700">, </span><span style="color: #DD0000">'SELECT COUNT(*) AS count FROM '</span><span style="color: #007700">, </span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">db</span><span style="color: #007700">-></span><span style="color: #0000BB">query1</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">limit </span><span style="color: #007700">= </span><span style="color: #0000BB">$res</span><span style="color: #007700">[</span><span style="color: #DD0000">'count'</span><span style="color: #007700">] - </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">offset</span><span style="color: #007700">;<br /> }<br />}</span>
- </span>
- </code></div>
- </div>
- <p></p>
- </div><!-- end of content -->
- <div id="apiFooter">
- Copyright © 2008-2011 by <a href="http://www.xunsearch.com" target="_blank">杭州云圣网络科技有限公司</a><br/>
- All Rights Reserved.<br/>
- </div><!-- end of footer -->
- <script type="text/javascript">
- /*<![CDATA[*/
- $("a.toggle").toggle(function(){
- $(this).text($(this).text().replace(/Hide/,'Show'));
- $(this).parents(".summary").find(".inherited").hide();
- },function(){
- $(this).text($(this).text().replace(/Show/,'Hide'));
- $(this).parents(".summary").find(".inherited").show();
- });
- $(".sourceCode a.show").toggle(function(){
- $(this).text($(this).text().replace(/show/,'hide'));
- $(this).parents(".sourceCode").find("div.code").show();
- },function(){
- $(this).text($(this).text().replace(/hide/,'show'));
- $(this).parents(".sourceCode").find("div.code").hide();
- });
- $("a.sourceLink").click(function(){
- $(this).attr('target','_blank');
- });
- /*]]>*/
- </script>
- </div><!-- end of page -->
- </body>
- </html>
|