Update User Guide

This commit is contained in:
paulbalandan 2021-01-25 02:56:40 +00:00
parent 61e1241547
commit 2b79adccae
156 changed files with 560 additions and 537 deletions

View File

@ -390,7 +390,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -604,7 +604,7 @@ security, text, url</p></li>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -755,7 +755,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -626,7 +626,7 @@
</dd>
</dl>
</li>
<li><p>bootstrao #1547</p></li>
<li><p>bootstrap #1547</p></li>
<li><p>CodeIgniter #1465, #1505, #1523, 2047b5a, #1547</p></li>
<li><p>Common #1486, #1496, #1504, #1513</p></li>
<li><p>ComposerScripts #1469, #1547</p></li>
@ -1040,7 +1040,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -803,7 +803,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -385,7 +385,8 @@
<dt>Config/</dt><dd><ul>
<li><p>Filters #1686</p></li>
<li><p>Modules #1665</p></li>
<li><p>Services #614216</p></li>
<li><dl class="simple">
<dt>Services #614216</dt><dd><ul>
<li><p>Toolbar</p></li>
</ul>
</dd>
@ -395,6 +396,10 @@
</dd>
</dl>
</li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>contributing/</dt><dd><ul class="simple">
<li><p>guidelines.rst #1671, #1673</p></li>
@ -863,7 +868,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -729,7 +729,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -869,7 +869,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -736,7 +736,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -483,7 +483,13 @@
</li>
<li><dl class="simple">
<dt>Filters/</dt><dd><ul>
<li><p>Filters #2039 - helpers/</p></li>
<li><p>Filters #2039</p></li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>helpers/</dt><dd><ul>
<li><p>date_helper #2091</p></li>
</ul>
</dd>
@ -767,7 +773,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -847,7 +847,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -528,12 +528,18 @@
<dt>Database/</dt><dd><ul>
<li><dl class="simple">
<dt>Builder/</dt><dd><ul>
<li><p>GetTest #2232</p></li>
<li><dl class="simple">
<dt>GetTest #2232</dt><dd><ul>
<li><p>CountTest #2269</p></li>
<li><p>DeleteTest #2269</p></li>
<li><p>EmptyTest #2269</p></li>
<li><p>GetTest #2269</p></li>
<li><p>GroupTest #2257</p></li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>GroupTest #2257</dt><dd><ul>
<li><p>InsertTest #2269</p></li>
<li><p>ReplaceTest #2269</p></li>
<li><p>TruncateTest #2269</p></li>
@ -542,6 +548,10 @@
</dd>
</dl>
</li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>Live/</dt><dd><ul>
<li><p>EscapeTest #2229</p></li>
@ -789,7 +799,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -697,7 +697,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -456,7 +456,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -383,7 +383,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -388,7 +388,7 @@ representation of some of the bigger changes you should know about.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -419,7 +419,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -410,7 +410,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -470,7 +470,7 @@ allows you to prompt a user for information, making it easy to build flexible, s
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -603,7 +603,7 @@ be familiar with when creating your own commands. It also has a <a class="refere
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -874,7 +874,7 @@ e.g., <code class="docutils literal notranslate"><span class="pre">protected</sp
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -612,7 +612,7 @@ waiting for a key press.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -409,7 +409,7 @@ but adds some accessor methods for convenience.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -374,7 +374,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -451,7 +451,7 @@ the first one to get a chance to locate the file.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -535,7 +535,7 @@ that single call will return a new or shared instance:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -475,7 +475,7 @@ of the HTTP response. This gives you an easy and powerful way to construct your
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -376,7 +376,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -426,7 +426,7 @@ you need.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -581,7 +581,7 @@ inappropriately.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -540,7 +540,7 @@ would simply use the frameworks <code class="docutils literal notranslate"><s
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -444,7 +444,7 @@ settings inside <code class="docutils literal notranslate"><span class="pre">app
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -352,7 +352,7 @@
<h2>$db-&gt;callFunction();<a class="headerlink" href="#db-callfunction" title="Permalink to this headline"></a></h2>
<p>This function enables you to call PHP database functions that are not
natively included in CodeIgniter, in a platform-independent manner. For
example, lets say you want to call the mysql_get_client_info()
example, lets say you want to call the <code class="docutils literal notranslate"><span class="pre">mysql_get_client_info()</span></code>
function, which is <strong>not</strong> natively supported by CodeIgniter. You could
do so like this:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$db</span><span class="o">-&gt;</span><span class="na">callFunction</span><span class="p">(</span><span class="s1">&#39;get_client_info&#39;</span><span class="p">);</span>
@ -399,7 +399,7 @@ database result ID. The connection ID can be accessed using:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -361,22 +361,22 @@ database connection values in the .env file. See below for more details.</p>
<p>The config settings are stored in a class property that is an array with this
prototype:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">public</span> <span class="nv">$default</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;DSN&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;root&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;database_name&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;failover&#39;</span> <span class="o">=&gt;</span> <span class="p">[],</span>
<span class="s1">&#39;DSN&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;root&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;database_name&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;failover&#39;</span> <span class="o">=&gt;</span> <span class="p">[],</span>
<span class="p">];</span>
</pre></div>
</div>
@ -424,39 +424,39 @@ fields, CodeIgniter will append them.</p>
<p>You can also specify failovers for the situation when the main connection cannot connect for some reason.
These failovers can be specified by setting the failover for a connection like this:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$default</span><span class="p">[</span><span class="s1">&#39;failover&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">[</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost1&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span>
<span class="p">],</span>
<span class="p">[</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost2&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span>
<span class="p">]</span>
<span class="p">];</span>
<span class="p">[</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost1&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span>
<span class="p">],</span>
<span class="p">[</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost2&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span>
<span class="p">]</span>
<span class="p">];</span>
</pre></div>
</div>
<p>You can specify as many failovers as you like.</p>
@ -466,22 +466,22 @@ production, test, etc.) under a single installation, you can set up a
connection group for each, then switch between groups as needed. For
example, to set up a “test” environment you would do this:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">public</span> <span class="nv">$test</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;DSN&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;root&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;database_name&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;failover&#39;</span> <span class="o">=&gt;</span> <span class="p">[]</span>
<span class="s1">&#39;DSN&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;root&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;database_name&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="k">TRUE</span><span class="p">,</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">FALSE</span><span class="p">,</span>
<span class="s1">&#39;failover&#39;</span> <span class="o">=&gt;</span> <span class="p">[]</span>
<span class="p">);</span>
</pre></div>
</div>
@ -505,10 +505,10 @@ within the class constructor:</p>
<span class="k">public</span> <span class="nv">$test</span> <span class="o">=</span> <span class="p">[</span><span class="o">...</span><span class="p">];</span>
<span class="k">public</span> <span class="nv">$production</span> <span class="o">=</span> <span class="p">[</span><span class="o">...</span><span class="p">];</span>
<span class="k">public</span> <span class="k">function</span> <span class="fm">__construct</span><span class="p">()</span>
<span class="p">{</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">defaultGroup</span> <span class="o">=</span> <span class="nx">ENVIRONMENT</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="fm">__construct</span><span class="p">()</span>
<span class="p">{</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">defaultGroup</span> <span class="o">=</span> <span class="nx">ENVIRONMENT</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
@ -529,8 +529,8 @@ default groups configuration settings. The values should be name following th
<h2><a class="toc-backref" href="#id2">Explanation of Values:</a><a class="headerlink" href="#explanation-of-values" title="Permalink to this headline"></a></h2>
<table class="docutils align-default">
<colgroup>
<col style="width: 17%" />
<col style="width: 83%" />
<col style="width: 12%" />
<col style="width: 88%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Name Config</p></th>
@ -554,7 +554,7 @@ default groups configuration settings. The values should be name following th
<td><p>The name of the database you want to connect to.</p></td>
</tr>
<tr class="row-odd"><td><p><strong>DBDriver</strong></p></td>
<td><p>The database type. eg: MySQLi, Postgre, etc. The case must match the driver name</p></td>
<td><p>The database type. e.g.,: MySQLi, Postgre, etc. The case must match the driver name</p></td>
</tr>
<tr class="row-even"><td><p><strong>DBPrefix</strong></p></td>
<td><p>An optional table prefix which will added to the table name when running
@ -588,11 +588,11 @@ customizable by the end user.</p></td>
</tr>
<tr class="row-odd"><td><p><strong>encrypt</strong></p></td>
<td><p>Whether or not to use an encrypted connection.</p>
<blockquote>
<div><ul class="simple">
<ul>
<li><p>sqlsrv and pdo/sqlsrv drivers accept TRUE/FALSE</p></li>
<li><p>MySQLi and pdo/mysql drivers accept an array with the following options:</p>
<ul>
<blockquote>
<div><ul class="simple">
<li><p>ssl_key - Path to the private key file</p></li>
<li><p>ssl_cert - Path to the public key certificate file</p></li>
<li><p>ssl_ca - Path to the certificate authority file</p></li>
@ -600,9 +600,9 @@ customizable by the end user.</p></td>
<li><p>ssl_cipher - List of <em>allowed</em> ciphers to be used for the encryption, separated by colons (:)</p></li>
<li><p>ssl_verify - TRUE/FALSE; Whether to verify the server certificate or not (MySQLi only)</p></li>
</ul>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</td>
</tr>
<tr class="row-even"><td><p><strong>compress</strong></p></td>
@ -648,7 +648,7 @@ you are using MySQL.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -365,7 +365,7 @@ and is provided for your convenience:</p>
<div class="section" id="available-parameters">
<h2>Available Parameters<a class="headerlink" href="#available-parameters" title="Permalink to this headline"></a></h2>
<ol class="arabic simple">
<li><p>The database group name, a string that must match the config class property name. Default value is $config-&gt;defaultGroup.</p></li>
<li><p>The database group name, a string that must match the config class property name. Default value is <code class="docutils literal notranslate"><span class="pre">$config-&gt;defaultGroup</span></code>.</p></li>
<li><p>TRUE/FALSE (boolean). Whether to return the shared connection (see
Connecting to Multiple Databases below).</p></li>
</ol>
@ -403,10 +403,8 @@ group names you are connecting to.</p>
<p class="admonition-title">Note</p>
<p>You dont need to create separate database configurations if you
only need to use a different database on the same connection. You
can switch to a different database when you need to, like this:</p>
<div class="line-block">
<div class="line">$db-&gt;setDatabase($database2_name);</div>
</div>
can switch to a different database when you need to, like this:
<code class="docutils literal notranslate"><span class="pre">$db-&gt;setDatabase($database2_name);</span></code></p>
</div>
</div>
<div class="section" id="connecting-with-custom-settings">
@ -415,24 +413,24 @@ can switch to a different database when you need to, like this:</p>
a connection that uses your custom settings. The array passed in must be
the same format as the groups are defined in the configuration file:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$custom</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;DSN&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="p">(</span><span class="nx">ENVIRONMENT</span> <span class="o">!==</span> <span class="s1">&#39;production&#39;</span><span class="p">),</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span>
<span class="s1">&#39;failover&#39;</span> <span class="o">=&gt;</span> <span class="p">[],</span>
<span class="s1">&#39;port&#39;</span> <span class="o">=&gt;</span> <span class="mi">3306</span><span class="p">,</span>
<span class="p">];</span>
<span class="s1">&#39;DSN&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;hostname&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost&#39;</span><span class="p">,</span>
<span class="s1">&#39;username&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;database&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBDriver&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MySQLi&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBPrefix&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;pConnect&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span>
<span class="s1">&#39;DBDebug&#39;</span> <span class="o">=&gt;</span> <span class="p">(</span><span class="nx">ENVIRONMENT</span> <span class="o">!==</span> <span class="s1">&#39;production&#39;</span><span class="p">),</span>
<span class="s1">&#39;charset&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8&#39;</span><span class="p">,</span>
<span class="s1">&#39;DBCollat&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;utf8_general_ci&#39;</span><span class="p">,</span>
<span class="s1">&#39;swapPre&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
<span class="s1">&#39;encrypt&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span>
<span class="s1">&#39;compress&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span>
<span class="s1">&#39;strictOn&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span>
<span class="s1">&#39;failover&#39;</span> <span class="o">=&gt;</span> <span class="p">[],</span>
<span class="s1">&#39;port&#39;</span> <span class="o">=&gt;</span> <span class="mi">3306</span><span class="p">,</span>
<span class="p">];</span>
<span class="nv">$db</span> <span class="o">=</span> <span class="nx">\Config\Database</span><span class="o">::</span><span class="na">connect</span><span class="p">(</span><span class="nv">$custom</span><span class="p">);</span>
</pre></div>
</div>
@ -441,12 +439,12 @@ the same format as the groups are defined in the configuration file:</p>
<h3>Reconnecting / Keeping the Connection Alive<a class="headerlink" href="#reconnecting-keeping-the-connection-alive" title="Permalink to this headline"></a></h3>
<p>If the database servers idle timeout is exceeded while youre doing
some heavy PHP lifting (processing an image, for instance), you should
consider pinging the server by using the reconnect() method before
consider pinging the server by using the <code class="docutils literal notranslate"><span class="pre">reconnect()</span></code> method before
sending further queries, which can gracefully keep the connection alive
or re-establish it.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>If you are using MySQLi database driver, the reconnect() method
<p>If you are using MySQLi database driver, the <code class="docutils literal notranslate"><span class="pre">reconnect()</span></code> method
does not ping the server but it closes the connection then connects again.</p>
</div>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$db</span><span class="o">-&gt;</span><span class="na">reconnect</span><span class="p">();</span>
@ -480,7 +478,7 @@ connections, you can explicitly close the connection.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -388,7 +388,7 @@ potentially missing indexes, slow queries, etc. An example usage might be:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -372,16 +372,18 @@ automatically. See the <a class="reference internal" href="connecting.html"><spa
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$results</span> <span class="k">as</span> <span class="nv">$row</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">title</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">email</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">title</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">email</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">echo</span> <span class="s1">&#39;Total Results: &#39;</span> <span class="o">.</span> <span class="nb">count</span><span class="p">(</span><span class="nv">$results</span><span class="p">);</span>
</pre></div>
</div>
<p>The above getResult() function returns an array of <strong>objects</strong>. Example:
$row-&gt;title</p>
<div class="line-block">
<div class="line">The above <code class="docutils literal notranslate"><span class="pre">getResult()</span></code> function returns an array of <strong>objects</strong>.</div>
<div class="line">Example: <code class="docutils literal notranslate"><span class="pre">$row-&gt;title</span></code></div>
</div>
</div>
<div class="section" id="standard-query-with-multiple-results-array-version">
<h2>Standard Query With Multiple Results (Array Version)<a class="headerlink" href="#standard-query-with-multiple-results-array-version" title="Permalink to this headline"></a></h2>
@ -390,14 +392,17 @@ $row-&gt;title</p>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$results</span> <span class="k">as</span> <span class="nv">$row</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">&#39;title&#39;</span><span class="p">];</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">];</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">&#39;email&#39;</span><span class="p">];</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">&#39;title&#39;</span><span class="p">];</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">];</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">&#39;email&#39;</span><span class="p">];</span>
<span class="p">}</span>
</pre></div>
</div>
<p>The above getResultArray() function returns an array of standard array
indexes. Example: $row[title]</p>
<div class="line-block">
<div class="line">The above <code class="docutils literal notranslate"><span class="pre">getResultArray()</span></code> function returns an array of standard array
indexes.</div>
<div class="line">Example: <code class="docutils literal notranslate"><span class="pre">$row['title']</span></code></div>
</div>
</div>
<div class="section" id="standard-query-with-single-result">
<h2>Standard Query With Single Result<a class="headerlink" href="#standard-query-with-single-result" title="Permalink to this headline"></a></h2>
@ -406,7 +411,7 @@ indexes. Example: $row[title]</p>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">name</span><span class="p">;</span>
</pre></div>
</div>
<p>The above getRow() function returns an <strong>object</strong>. Example: $row-&gt;name</p>
<p>The above <code class="docutils literal notranslate"><span class="pre">getRow()</span></code> function returns an <strong>object</strong>. Example: <code class="docutils literal notranslate"><span class="pre">$row-&gt;name</span></code></p>
</div>
<div class="section" id="standard-query-with-single-result-array-version">
<h2>Standard Query With Single Result (Array version)<a class="headerlink" href="#standard-query-with-single-result-array-version" title="Permalink to this headline"></a></h2>
@ -415,8 +420,8 @@ indexes. Example: $row[title]</p>
<span class="k">echo</span> <span class="nv">$row</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">];</span>
</pre></div>
</div>
<p>The above getRowArray() function returns an <strong>array</strong>. Example:
$row[name]</p>
<p>The above <code class="docutils literal notranslate"><span class="pre">getRowArray()</span></code> function returns an <strong>array</strong>. Example:
<code class="docutils literal notranslate"><span class="pre">$row['name']</span></code>.</p>
</div>
<div class="section" id="standard-insert">
<h2>Standard Insert<a class="headerlink" href="#standard-insert" title="Permalink to this headline"></a></h2>
@ -434,23 +439,24 @@ means of retrieving data:</p>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getResult</span><span class="p">()</span> <span class="k">as</span> <span class="nv">$row</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">title</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">title</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
<p>The above get() function retrieves all the results from the supplied
<p>The above <code class="docutils literal notranslate"><span class="pre">get()</span></code> function retrieves all the results from the supplied
table. The <a class="reference internal" href="query_builder.html"><span class="doc">Query Builder</span></a> class contains a full
complement of functions for working with data.</p>
</div>
<div class="section" id="query-builder-insert">
<h2>Query Builder Insert<a class="headerlink" href="#query-builder-insert" title="Permalink to this headline"></a></h2>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$data</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="nv">$title</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="nv">$name</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="nv">$date</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="nv">$title</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="nv">$name</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="nv">$date</span>
<span class="p">];</span>
<span class="nv">$db</span><span class="o">-&gt;</span><span class="na">table</span><span class="p">(</span><span class="s1">&#39;mytable&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">insert</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span> <span class="c1">// Produces: INSERT INTO mytable (title, name, date) VALUES (&#39;{$title}&#39;, &#39;{$name}&#39;, &#39;{$date}&#39;)</span>
<span class="nv">$db</span><span class="o">-&gt;</span><span class="na">table</span><span class="p">(</span><span class="s1">&#39;mytable&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">insert</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span>
<span class="c1">// Produces: INSERT INTO mytable (title, name, date) VALUES (&#39;{$title}&#39;, &#39;{$name}&#39;, &#39;{$date}&#39;)</span>
</pre></div>
</div>
</div>
@ -472,7 +478,7 @@ complement of functions for working with data.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -380,9 +380,10 @@ Example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">echo</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">table</span><span class="p">(</span><span class="s1">&#39;my_table&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">countAll</span><span class="p">();</span>
<span class="c1">// Produces an integer, like 25</span>
<span class="o">**</span><span class="nv">$db</span><span class="o">-&gt;</span><span class="na">countAllResults</span><span class="p">()</span><span class="o">**</span>
</pre></div>
</div>
<p><strong>$db-&gt;countAllResults()</strong></p>
<p>Permits you to determine the number of rows in a particular result set.
Submit the table name in the first parameter. This is part of Query Builder.
Example:</p>
@ -421,7 +422,7 @@ etc…):</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -383,7 +383,7 @@ patterns. The database functions offer clear, simple syntax.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -378,7 +378,7 @@ you are currently connected to. Example:</p>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$tables</span> <span class="k">as</span> <span class="nv">$table</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$table</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$table</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
@ -394,7 +394,7 @@ you are currently connected to. Example:</p>
running an operation on it. Returns a boolean TRUE/FALSE. Usage example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="nv">$db</span><span class="o">-&gt;</span><span class="na">tableExists</span><span class="p">(</span><span class="s1">&#39;table_name&#39;</span><span class="p">))</span>
<span class="p">{</span>
<span class="c1">// some code...</span>
<span class="c1">// some code...</span>
<span class="p">}</span>
</pre></div>
</div>
@ -411,23 +411,25 @@ running an operation on it. Returns a boolean TRUE/FALSE. Usage example:</p>
<p><strong>$db-&gt;getFieldNames()</strong></p>
<p>Returns an array containing the field names. This query can be called
two ways:</p>
<p>1. You can supply the table name and call it from the $db-&gt;
object:</p>
<ol class="arabic">
<li><p>You can supply the table name and call it from the <code class="docutils literal notranslate"><span class="pre">$db-&gt;object</span></code>:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$fields</span> <span class="o">=</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">getFieldNames</span><span class="p">(</span><span class="s1">&#39;table_name&#39;</span><span class="p">);</span>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$fields</span> <span class="k">as</span> <span class="nv">$field</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
</li>
</ol>
<p>2. You can gather the field names associated with any query you run by
calling the function from your query result object:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$query</span> <span class="o">=</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">query</span><span class="p">(</span><span class="s1">&#39;SELECT * FROM some_table&#39;</span><span class="p">);</span>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getFieldNames</span><span class="p">()</span> <span class="k">as</span> <span class="nv">$field</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
@ -439,7 +441,7 @@ calling the function from your query result object:</p>
performing an action. Returns a boolean TRUE/FALSE. Usage example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="nv">$db</span><span class="o">-&gt;</span><span class="na">fieldExists</span><span class="p">(</span><span class="s1">&#39;field_name&#39;</span><span class="p">,</span> <span class="s1">&#39;table_name&#39;</span><span class="p">))</span>
<span class="p">{</span>
<span class="c1">// some code...</span>
<span class="c1">// some code...</span>
<span class="p">}</span>
</pre></div>
</div>
@ -465,10 +467,10 @@ the column type, max length, etc.</p>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$fields</span> <span class="k">as</span> <span class="nv">$field</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="o">-&gt;</span><span class="na">name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="o">-&gt;</span><span class="na">type</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="o">-&gt;</span><span class="na">max_length</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="o">-&gt;</span><span class="na">primary_key</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="o">-&gt;</span><span class="na">name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="o">-&gt;</span><span class="na">type</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="o">-&gt;</span><span class="na">max_length</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$field</span><span class="o">-&gt;</span><span class="na">primary_key</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
@ -496,9 +498,9 @@ database:</p>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$keys</span> <span class="k">as</span> <span class="nv">$key</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">type</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">fields</span><span class="p">;</span> <span class="c1">// array of field names</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">type</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">fields</span><span class="p">;</span> <span class="c1">// array of field names</span>
<span class="p">}</span>
</pre></div>
</div>
@ -512,11 +514,11 @@ for each key associated with a table.</p>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$keys</span> <span class="k">as</span> <span class="nv">$key</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">constraint_name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">table_name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">column_name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">foreign_table_name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">foreign_column_name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">constraint_name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">table_name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">column_name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">foreign_table_name</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$key</span><span class="o">-&gt;</span><span class="na">foreign_column_name</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
@ -543,7 +545,7 @@ foreign key definitions.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -387,7 +387,7 @@
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$db</span><span class="o">-&gt;</span><span class="na">query</span><span class="p">(</span><span class="s1">&#39;YOUR QUERY HERE&#39;</span><span class="p">);</span>
</pre></div>
</div>
<p>The query() function returns a database result <strong>object</strong> when “read”
<p>The <code class="docutils literal notranslate"><span class="pre">query()</span></code> function returns a database result <strong>object</strong> when “read”
type queries are run which you can use to <a class="reference internal" href="results.html"><span class="doc">show your
results</span></a>. When “write” type queries are run it simply
returns TRUE or FALSE depending on success or failure. When retrieving
@ -400,22 +400,22 @@ this:</p>
<div class="section" id="simplified-queries">
<h3><a class="toc-backref" href="#id3">Simplified Queries</a><a class="headerlink" href="#simplified-queries" title="Permalink to this headline"></a></h3>
<p>The <strong>simpleQuery</strong> method is a simplified version of the
$db-&gt;query() method. It DOES
<code class="docutils literal notranslate"><span class="pre">$db-&gt;query()</span></code> method. It DOES
NOT return a database result set, nor does it set the query timer, or
compile bind data, or store your query for debugging. It simply lets you
submit a query. Most users will rarely use this function.</p>
<p>It returns whatever the database drivers “execute” function returns.
<p>It returns whatever the database drivers “execute” function returns.
That typically is TRUE/FALSE on success or failure for write type queries
such as INSERT, DELETE or UPDATE statements (which is what it really
should be used for) and a resource/object on success for queries with
fetchable results.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="nv">$db</span><span class="o">-&gt;</span><span class="na">simpleQuery</span><span class="p">(</span><span class="s1">&#39;YOUR QUERY&#39;</span><span class="p">))</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="s2">&quot;Success!&quot;</span><span class="p">;</span>
<span class="k">echo</span> <span class="s2">&quot;Success!&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="s2">&quot;Query failed!&quot;</span><span class="p">;</span>
<span class="k">echo</span> <span class="s2">&quot;Query failed!&quot;</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
@ -478,14 +478,14 @@ this:</p>
<li><p><strong>$db-&gt;escape()</strong> This function determines the data type so
that it can escape only string data. It also automatically adds
single quotes around the data so you dont have to:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$sql</span> <span class="o">=</span> <span class="s2">&quot;INSERT INTO table (title) VALUES(&quot;</span><span class="o">.</span><span class="nv">$db</span><span class="o">-&gt;</span><span class="na">escape</span><span class="p">(</span><span class="nv">$title</span><span class="p">)</span><span class="o">.</span><span class="s2">&quot;)&quot;</span><span class="p">;</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$sql</span> <span class="o">=</span> <span class="s2">&quot;INSERT INTO table (title) VALUES(&quot;</span> <span class="o">.</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">escape</span><span class="p">(</span><span class="nv">$title</span><span class="p">)</span> <span class="o">.</span> <span class="s2">&quot;)&quot;</span><span class="p">;</span>
</pre></div>
</div>
</li>
<li><p><strong>$db-&gt;escapeString()</strong> This function escapes the data passed to
it, regardless of type. Most of the time youll use the above
function rather than this one. Use the function like this:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$sql</span> <span class="o">=</span> <span class="s2">&quot;INSERT INTO table (title) VALUES(&#39;&quot;</span><span class="o">.</span><span class="nv">$db</span><span class="o">-&gt;</span><span class="na">escapeString</span><span class="p">(</span><span class="nv">$title</span><span class="p">)</span><span class="o">.</span><span class="s2">&quot;&#39;)&quot;</span><span class="p">;</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$sql</span> <span class="o">=</span> <span class="s2">&quot;INSERT INTO table (title) VALUES(&#39;&quot;</span> <span class="o">.</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">escapeString</span><span class="p">(</span><span class="nv">$title</span><span class="p">)</span> <span class="o">.</span> <span class="s2">&quot;&#39;)&quot;</span><span class="p">;</span>
</pre></div>
</div>
</li>
@ -495,7 +495,7 @@ strings are to be used in LIKE conditions so that LIKE wildcards
</ol>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$search</span> <span class="o">=</span> <span class="s1">&#39;20% raise&#39;</span><span class="p">;</span>
<span class="nv">$sql</span> <span class="o">=</span> <span class="s2">&quot;SELECT id FROM table WHERE column LIKE &#39;%&quot;</span> <span class="o">.</span>
<span class="nv">$db</span><span class="o">-&gt;</span><span class="na">escapeLikeString</span><span class="p">(</span><span class="nv">$search</span><span class="p">)</span><span class="o">.</span><span class="s2">&quot;%&#39; ESCAPE &#39;!&#39;&quot;</span><span class="p">;</span>
<span class="nv">$db</span><span class="o">-&gt;</span><span class="na">escapeLikeString</span><span class="p">(</span><span class="nv">$search</span><span class="p">)</span> <span class="o">.</span> <span class="s2">&quot;%&#39; ESCAPE &#39;!&#39;&quot;</span><span class="p">;</span>
</pre></div>
</div>
<div class="admonition important">
@ -536,9 +536,9 @@ you can name the bindings, allowing the keys of the values passed in to match
placeholders in the query:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$sql</span> <span class="o">=</span> <span class="s2">&quot;SELECT * FROM some_table WHERE id = :id: AND status = :status: AND author = :name:&quot;</span><span class="p">;</span>
<span class="nv">$db</span><span class="o">-&gt;</span><span class="na">query</span><span class="p">(</span><span class="nv">$sql</span><span class="p">,</span> <span class="p">[</span>
<span class="s1">&#39;id&#39;</span> <span class="o">=&gt;</span> <span class="mi">3</span><span class="p">,</span>
<span class="s1">&#39;status&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;live&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;Rick&#39;</span>
<span class="s1">&#39;id&#39;</span> <span class="o">=&gt;</span> <span class="mi">3</span><span class="p">,</span>
<span class="s1">&#39;status&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;live&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;Rick&#39;</span>
<span class="p">]);</span>
</pre></div>
</div>
@ -551,12 +551,12 @@ placeholders in the query:</p>
<div class="section" id="handling-errors">
<h2><a class="toc-backref" href="#id9">Handling Errors</a><a class="headerlink" href="#handling-errors" title="Permalink to this headline"></a></h2>
<p><strong>$db-&gt;error();</strong></p>
<p>If you need to get the last error that has occurred, the error() method
<p>If you need to get the last error that has occurred, the <code class="docutils literal notranslate"><span class="pre">error()</span></code> method
will return an array containing its code and message. Heres a quick
example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">simpleQuery</span><span class="p">(</span><span class="s1">&#39;SELECT `example_field` FROM `example_table`&#39;</span><span class="p">))</span>
<span class="p">{</span>
<span class="nv">$error</span> <span class="o">=</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">error</span><span class="p">();</span> <span class="c1">// Has keys &#39;code&#39; and &#39;message&#39;</span>
<span class="nv">$error</span> <span class="o">=</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">error</span><span class="p">();</span> <span class="c1">// Has keys &#39;code&#39; and &#39;message&#39;</span>
<span class="p">}</span>
</pre></div>
</div>
@ -580,11 +580,11 @@ as placeholders. This returns a PreparedQuery object:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$pQuery</span> <span class="o">=</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">prepare</span><span class="p">(</span><span class="k">function</span><span class="p">(</span><span class="nv">$db</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">return</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">table</span><span class="p">(</span><span class="s1">&#39;user&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">insert</span><span class="p">([</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;x&#39;</span><span class="p">,</span>
<span class="s1">&#39;email&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;y&#39;</span><span class="p">,</span>
<span class="s1">&#39;country&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;US&#39;</span>
<span class="p">]);</span>
<span class="o">-&gt;</span><span class="na">insert</span><span class="p">([</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;x&#39;</span><span class="p">,</span>
<span class="s1">&#39;email&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;y&#39;</span><span class="p">,</span>
<span class="s1">&#39;country&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;US&#39;</span>
<span class="p">]);</span>
<span class="p">});</span>
</pre></div>
</div>
@ -623,11 +623,11 @@ query:</p>
<span class="nv">$pQuery</span> <span class="o">=</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">prepare</span><span class="p">(</span><span class="k">function</span><span class="p">(</span><span class="nv">$db</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">return</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">table</span><span class="p">(</span><span class="s1">&#39;user&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">insert</span><span class="p">([</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;x&#39;</span><span class="p">,</span>
<span class="s1">&#39;email&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;y&#39;</span><span class="p">,</span>
<span class="s1">&#39;country&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;US&#39;</span>
<span class="p">]);</span>
<span class="o">-&gt;</span><span class="na">insert</span><span class="p">([</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;x&#39;</span><span class="p">,</span>
<span class="s1">&#39;email&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;y&#39;</span><span class="p">,</span>
<span class="s1">&#39;country&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;US&#39;</span>
<span class="p">]);</span>
<span class="p">});</span>
<span class="c1">// Collect the Data</span>
@ -653,7 +653,7 @@ close out the prepared statement when youre done with it:</p>
<p><strong>getQueryString()</strong></p>
<p>This returns the prepared query as a string.</p>
<p><strong>hasError()</strong></p>
<p>Returns boolean true/false if the last execute() call created any errors.</p>
<p>Returns boolean true/false if the last <code class="docutils literal notranslate"><span class="pre">execute()</span></code> call created any errors.</p>
<p><strong>getErrorCode()</strong>
<strong>getErrorMessage()</strong></p>
<p>If any errors were encountered these methods can be used to retrieve the error code and string.</p>
@ -698,17 +698,17 @@ binds in it, or prefixes swapped out, etc:</p>
will return true:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="nv">$query</span><span class="o">-&gt;</span><span class="na">hasError</span><span class="p">())</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="s1">&#39;Code: &#39;</span><span class="o">.</span> <span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getErrorCode</span><span class="p">();</span>
<span class="k">echo</span> <span class="s1">&#39;Error: &#39;</span><span class="o">.</span> <span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getErrorMessage</span><span class="p">();</span>
<span class="k">echo</span> <span class="s1">&#39;Code: &#39;</span><span class="o">.</span> <span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getErrorCode</span><span class="p">();</span>
<span class="k">echo</span> <span class="s1">&#39;Error: &#39;</span><span class="o">.</span> <span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getErrorMessage</span><span class="p">();</span>
<span class="p">}</span>
</pre></div>
</div>
<p><strong>isWriteType()</strong></p>
<p>Returns true if the query was determined to be a write-type query (i.e.
<p>Returns true if the query was determined to be a write-type query (i.e.,
INSERT, UPDATE, DELETE, etc):</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="nv">$query</span><span class="o">-&gt;</span><span class="na">isWriteType</span><span class="p">())</span>
<span class="p">{</span>
<span class="o">...</span> <span class="k">do</span> <span class="nx">something</span>
<span class="c1">// ... do something</span>
<span class="p">}</span>
</pre></div>
</div>
@ -749,7 +749,7 @@ parameter is the value you want it replaced with:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -412,14 +412,14 @@ $query, which can be used to show the results:</p>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getResult</span><span class="p">()</span> <span class="k">as</span> <span class="nv">$row</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">title</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">title</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
<p>Please visit the <a class="reference internal" href="results.html"><span class="doc">result functions</span></a> page for a full
discussion regarding result generation.</p>
<p><strong>$builder-&gt;getCompiledSelect()</strong></p>
<p>Compiles the selection query just like <strong>$builder-&gt;get()</strong> but does not <em>run</em>
<p>Compiles the selection query just like <code class="docutils literal notranslate"><span class="pre">$builder-&gt;get()</span></code> but does not <em>run</em>
the query. This method simply returns the SQL query as a string.</p>
<p>Example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$sql</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">getCompiledSelect</span><span class="p">();</span>
@ -429,7 +429,7 @@ the query. This method simply returns the SQL query as a string.</p>
</pre></div>
</div>
<p>The first parameter enables you to set whether or not the query builder query
will be reset (by default it will be reset, just like when using <cite>$builder-&gt;get()</cite>):</p>
will be reset (by default it will be reset, just like when using <code class="docutils literal notranslate"><span class="pre">$builder-&gt;get()</span></code>):</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">echo</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">limit</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">20</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">getCompiledSelect</span><span class="p">(</span><span class="k">false</span><span class="p">);</span>
<span class="c1">// Prints string: SELECT * FROM mytable LIMIT 20, 10</span>
@ -441,10 +441,10 @@ will be reset (by default it will be reset, just like when using <cite>$builder-
</pre></div>
</div>
<p>The key thing to notice in the above example is that the second query did not
utilize <strong>$builder-&gt;from()</strong> and did not pass a table name into the first
utilize <code class="docutils literal notranslate"><span class="pre">$builder-&gt;from()</span></code> and did not pass a table name into the first
parameter. The reason for this outcome is because the query has not been
executed using <strong>$builder-&gt;get()</strong> which resets values or reset directly
using <strong>$builder-&gt;resetQuery()</strong>.</p>
executed using <code class="docutils literal notranslate"><span class="pre">$builder-&gt;get()</span></code> which resets values or reset directly
using <code class="docutils literal notranslate"><span class="pre">$builder-&gt;resetQuery()</span></code>.</p>
<p><strong>$builder-&gt;getWhere()</strong></p>
<p>Identical to the <code class="docutils literal notranslate"><span class="pre">get()</span></code> function except that it permits you to add a
“where” clause in the first parameter, instead of using the db-&gt;where()
@ -465,7 +465,7 @@ function:</p>
<p class="admonition-title">Note</p>
<p>If you are selecting all (*) from a table you do not need to
use this function. When omitted, CodeIgniter assumes that you wish
to select all fields and automatically adds SELECT *.</p>
to select all fields and automatically adds <code class="docutils literal notranslate"><span class="pre">SELECT</span> <span class="pre">\*</span></code>.</p>
</div>
<p><code class="docutils literal notranslate"><span class="pre">$builder-&gt;select()</span></code> accepts an optional second parameter. If you set it
to <code class="docutils literal notranslate"><span class="pre">false</span></code>, CodeIgniter will not try to protect your field or table names.
@ -479,10 +479,12 @@ escaping of fields may break them.</p>
<p>Writes a <code class="docutils literal notranslate"><span class="pre">SELECT</span> <span class="pre">MAX(field)</span></code> portion for your query. You can optionally
include a second parameter to rename the resulting field.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">selectMax</span><span class="p">(</span><span class="s1">&#39;age&#39;</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span> <span class="c1">// Produces: SELECT MAX(age) as age FROM mytable</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span>
<span class="c1">// Produces: SELECT MAX(age) as age FROM mytable</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">selectMax</span><span class="p">(</span><span class="s1">&#39;age&#39;</span><span class="p">,</span> <span class="s1">&#39;member_age&#39;</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span> <span class="c1">// Produces: SELECT MAX(age) as member_age FROM mytable</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span>
<span class="c1">// Produces: SELECT MAX(age) as member_age FROM mytable</span>
</pre></div>
</div>
<p><strong>$builder-&gt;selectMin()</strong></p>
@ -490,7 +492,8 @@ include a second parameter to rename the resulting field.</p>
selectMax(), You can optionally include a second parameter to rename
the resulting field.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">selectMin</span><span class="p">(</span><span class="s1">&#39;age&#39;</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span> <span class="c1">// Produces: SELECT MIN(age) as age FROM mytable</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span>
<span class="c1">// Produces: SELECT MIN(age) as age FROM mytable</span>
</pre></div>
</div>
<p><strong>$builder-&gt;selectAvg()</strong></p>
@ -498,20 +501,22 @@ the resulting field.</p>
selectMax(), You can optionally include a second parameter to rename
the resulting field.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">selectAvg</span><span class="p">(</span><span class="s1">&#39;age&#39;</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span> <span class="c1">// Produces: SELECT AVG(age) as age FROM mytable</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span>
<span class="c1">// Produces: SELECT AVG(age) as age FROM mytable</span>
</pre></div>
</div>
<p><strong>$builder-&gt;selectSum()</strong></p>
<p>Writes a “SELECT SUM(field)” portion for your query. As with
selectMax(), You can optionally include a second parameter to rename
<code class="docutils literal notranslate"><span class="pre">selectMax()</span></code>, You can optionally include a second parameter to rename
the resulting field.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">selectSum</span><span class="p">(</span><span class="s1">&#39;age&#39;</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span> <span class="c1">// Produces: SELECT SUM(age) as age FROM mytable</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span>
<span class="c1">// Produces: SELECT SUM(age) as age FROM mytable</span>
</pre></div>
</div>
<p><strong>$builder-&gt;selectCount()</strong></p>
<p>Writes a “SELECT COUNT(field)” portion for your query. As with
selectMax(), You can optionally include a second parameter to rename
<p>Writes a <code class="docutils literal notranslate"><span class="pre">&quot;SELECT</span> <span class="pre">COUNT(field)&quot;</span></code> portion for your query. As with
<code class="docutils literal notranslate"><span class="pre">selectMax()</span></code>, You can optionally include a second parameter to rename
the resulting field.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
@ -519,20 +524,22 @@ the resulting field.</p>
counting results generally see <code class="docutils literal notranslate"><span class="pre">countAll()</span></code> or <code class="docutils literal notranslate"><span class="pre">countAllResults()</span></code>.</p>
</div>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">selectCount</span><span class="p">(</span><span class="s1">&#39;age&#39;</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span> <span class="c1">// Produces: SELECT COUNT(age) as age FROM mytable</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span>
<span class="c1">// Produces: SELECT COUNT(age) as age FROM mytable</span>
</pre></div>
</div>
<p><strong>$builder-&gt;from()</strong></p>
<p>Permits you to write the FROM portion of your query:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">select</span><span class="p">(</span><span class="s1">&#39;title, content, date&#39;</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">from</span><span class="p">(</span><span class="s1">&#39;mytable&#39;</span><span class="p">);</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span> <span class="c1">// Produces: SELECT title, content, date FROM mytable</span>
<span class="nv">$query</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span>
<span class="c1">// Produces: SELECT title, content, date FROM mytable</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>As shown earlier, the FROM portion of your query can is specified
in the $db-&gt;table() function. Additional calls to from() will add more tables
in the <code class="docutils literal notranslate"><span class="pre">$db-&gt;table()</span></code> function. Additional calls to <code class="docutils literal notranslate"><span class="pre">from()</span></code> will add more tables
to the FROM portion of your query.</p>
</div>
<p><strong>$builder-&gt;join()</strong></p>
@ -569,7 +576,8 @@ producing safer queries.</p>
<ol class="arabic">
<li><p><strong>Simple key/value method:</strong></p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="nv">$name</span><span class="p">);</span> <span class="c1">// Produces: WHERE name = &#39;Joe&#39;</span>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="nv">$name</span><span class="p">);</span>
<span class="c1">// Produces: WHERE name = &#39;Joe&#39;</span>
</pre></div>
</div>
<p>Notice that the equal sign is added for you.</p>
@ -588,7 +596,8 @@ AND between them:</p>
<div><p>You can include an operator in the first parameter in order to
control the comparison:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;name !=&#39;</span><span class="p">,</span> <span class="nv">$name</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;id &lt;&#39;</span><span class="p">,</span> <span class="nv">$id</span><span class="p">);</span> <span class="c1">// Produces: WHERE name != &#39;Joe&#39; AND id &lt; 45</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;id &lt;&#39;</span><span class="p">,</span> <span class="nv">$id</span><span class="p">);</span>
<span class="c1">// Produces: WHERE name != &#39;Joe&#39; AND id &lt; 45</span>
</pre></div>
</div>
</div></blockquote>
@ -608,13 +617,11 @@ control the comparison:</p>
</div></blockquote>
</li>
<li><dl>
<dt><strong>Custom string:</strong></dt><dd><blockquote>
<div><p>You can write your own clauses manually:</p>
<dt><strong>Custom string:</strong></dt><dd><p>You can write your own clauses manually:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$where</span> <span class="o">=</span> <span class="s2">&quot;name=&#39;Joe&#39; AND status=&#39;boss&#39; OR status=&#39;active&#39;&quot;</span><span class="p">;</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="nv">$where</span><span class="p">);</span>
</pre></div>
</div>
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">$builder-&gt;where()</span></code> accepts an optional third parameter. If you set it to
<code class="docutils literal notranslate"><span class="pre">false</span></code>, CodeIgniter will not try to protect your field or table names.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;MATCH (field) AGAINST (&quot;value&quot;)&#39;</span><span class="p">,</span> <span class="k">null</span><span class="p">,</span> <span class="k">false</span><span class="p">);</span>
@ -640,7 +647,8 @@ control the comparison:</p>
instances are joined by OR</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;name !=&#39;</span><span class="p">,</span> <span class="nv">$name</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">orWhere</span><span class="p">(</span><span class="s1">&#39;id &gt;&#39;</span><span class="p">,</span> <span class="nv">$id</span><span class="p">);</span> <span class="c1">// Produces: WHERE name != &#39;Joe&#39; OR id &gt; 50</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">orWhere</span><span class="p">(</span><span class="s1">&#39;id &gt;&#39;</span><span class="p">,</span> <span class="nv">$id</span><span class="p">);</span>
<span class="c1">// Produces: WHERE name != &#39;Joe&#39; OR id &gt; 50</span>
</pre></div>
</div>
</div></blockquote>
@ -664,7 +672,7 @@ appropriate</p>
</div>
</div></blockquote>
<p><strong>$builder-&gt;orWhereIn()</strong></p>
<p>Generates a WHERE field IN (item, item) SQL query joined with OR if
<p>Generates a <code class="docutils literal notranslate"><span class="pre">WHERE</span> <span class="pre">field</span> <span class="pre">IN</span> <span class="pre">('item',</span> <span class="pre">'item')</span></code> SQL query joined with OR if
appropriate</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$names</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;Frank&#39;</span><span class="p">,</span> <span class="s1">&#39;Todd&#39;</span><span class="p">,</span> <span class="s1">&#39;James&#39;</span><span class="p">];</span>
@ -704,7 +712,7 @@ AND if appropriate</p>
</div>
</div></blockquote>
<p><strong>$builder-&gt;orWhereNotIn()</strong></p>
<p>Generates a WHERE field NOT IN (item, item) SQL query joined with OR
<p>Generates a <code class="docutils literal notranslate"><span class="pre">WHERE</span> <span class="pre">field</span> <span class="pre">NOT</span> <span class="pre">IN</span> <span class="pre">('item',</span> <span class="pre">'item')</span></code> SQL query joined with OR
if appropriate</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$names</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;Frank&#39;</span><span class="p">,</span> <span class="s1">&#39;Todd&#39;</span><span class="p">,</span> <span class="s1">&#39;James&#39;</span><span class="p">];</span>
@ -784,7 +792,7 @@ instances are joined by OR:</p>
<p><strong>$builder-&gt;notLike()</strong></p>
<p>This method is identical to <code class="docutils literal notranslate"><span class="pre">like()</span></code>, except that it generates
NOT LIKE statements:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">notLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">);</span> <span class="c1">// WHERE `title` NOT LIKE &#39;%match% ESCAPE &#39;!&#39;</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">notLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">);</span> <span class="c1">// WHERE `title` NOT LIKE &#39;%match% ESCAPE &#39;!&#39;</span>
</pre></div>
</div>
<p><strong>$builder-&gt;orNotLike()</strong></p>
@ -797,24 +805,27 @@ instances are joined by OR:</p>
</div>
<p><strong>$builder-&gt;groupBy()</strong></p>
<p>Permits you to write the GROUP BY portion of your query:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">groupBy</span><span class="p">(</span><span class="s2">&quot;title&quot;</span><span class="p">);</span> <span class="c1">// Produces: GROUP BY title</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">groupBy</span><span class="p">(</span><span class="s2">&quot;title&quot;</span><span class="p">);</span>
<span class="c1">// Produces: GROUP BY title</span>
</pre></div>
</div>
<p>You can also pass an array of multiple values as well:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">groupBy</span><span class="p">([</span><span class="s2">&quot;title&quot;</span><span class="p">,</span> <span class="s2">&quot;date&quot;</span><span class="p">]);</span> <span class="c1">// Produces: GROUP BY title, date</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">groupBy</span><span class="p">([</span><span class="s2">&quot;title&quot;</span><span class="p">,</span> <span class="s2">&quot;date&quot;</span><span class="p">]);</span>
<span class="c1">// Produces: GROUP BY title, date</span>
</pre></div>
</div>
<p><strong>$builder-&gt;distinct()</strong></p>
<p>Adds the “DISTINCT” keyword to a query</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">distinct</span><span class="p">();</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span> <span class="c1">// Produces: SELECT DISTINCT * FROM mytable</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span>
<span class="c1">// Produces: SELECT DISTINCT * FROM mytable</span>
</pre></div>
</div>
<p><strong>$builder-&gt;having()</strong></p>
<p>Permits you to write the HAVING portion of your query. There are 2
possible syntaxes, 1 argument or 2:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">having</span><span class="p">(</span><span class="s1">&#39;user_id = 45&#39;</span><span class="p">);</span> <span class="c1">// Produces: HAVING user_id = 45</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">having</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">,</span> <span class="mi">45</span><span class="p">);</span> <span class="c1">// Produces: HAVING user_id = 45</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">having</span><span class="p">(</span><span class="s1">&#39;user_id = 45&#39;</span><span class="p">);</span> <span class="c1">// Produces: HAVING user_id = 45</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">having</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">,</span> <span class="mi">45</span><span class="p">);</span> <span class="c1">// Produces: HAVING user_id = 45</span>
</pre></div>
</div>
<p>You can also pass an array of multiple values as well:</p>
@ -825,91 +836,75 @@ possible syntaxes, 1 argument or 2:</p>
<p>If you are using a database that CodeIgniter escapes queries for, you
can prevent escaping content by passing an optional third argument, and
setting it to <code class="docutils literal notranslate"><span class="pre">false</span></code>.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">having</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">,</span> <span class="mi">45</span><span class="p">);</span> <span class="c1">// Produces: HAVING `user_id` = 45 in some databases such as MySQL</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">having</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="k">false</span><span class="p">);</span> <span class="c1">// Produces: HAVING user_id = 45</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">having</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">,</span> <span class="mi">45</span><span class="p">);</span> <span class="c1">// Produces: HAVING `user_id` = 45 in some databases such as MySQL</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">having</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="k">false</span><span class="p">);</span> <span class="c1">// Produces: HAVING user_id = 45</span>
</pre></div>
</div>
<p><strong>$builder-&gt;orHaving()</strong></p>
<p>Identical to having(), only separates multiple clauses with “OR”.</p>
<p>Identical to <code class="docutils literal notranslate"><span class="pre">having()</span></code>, only separates multiple clauses with “OR”.</p>
<p><strong>$builder-&gt;havingIn()</strong></p>
<p>Generates a HAVING field IN (item, item) SQL query joined with AND if
<p>Generates a <code class="docutils literal notranslate"><span class="pre">HAVING</span> <span class="pre">field</span> <span class="pre">IN</span> <span class="pre">('item',</span> <span class="pre">'item')</span></code> SQL query joined with AND if
appropriate</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$groups</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">];</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$groups</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingIn</span><span class="p">(</span><span class="s1">&#39;group_id&#39;</span><span class="p">,</span> <span class="nv">$groups</span><span class="p">);</span>
<span class="c1">// Produces: HAVING group_id IN (1, 2, 3)</span>
</pre></div>
</div>
</div></blockquote>
<p>You can use subqueries instead of an array of values.</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingIn</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="k">function</span><span class="p">(</span><span class="nx">BaseBuilder</span> <span class="nv">$builder</span><span class="p">)</span> <span class="p">{</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingIn</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="k">function</span><span class="p">(</span><span class="nx">BaseBuilder</span> <span class="nv">$builder</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">select</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">from</span><span class="p">(</span><span class="s1">&#39;users_jobs&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;group_id&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span>
<span class="p">});</span>
<span class="c1">// Produces: HAVING &quot;id&quot; IN (SELECT &quot;user_id&quot; FROM &quot;users_jobs&quot; WHERE &quot;group_id&quot; = 3)</span>
</pre></div>
</div>
</div></blockquote>
<p><strong>$builder-&gt;orHavingIn()</strong></p>
<p>Generates a HAVING field IN (item, item) SQL query joined with OR if
<p>Generates a <code class="docutils literal notranslate"><span class="pre">HAVING</span> <span class="pre">field</span> <span class="pre">IN</span> <span class="pre">('item',</span> <span class="pre">'item')</span></code> SQL query joined with OR if
appropriate</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$groups</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">];</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$groups</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">orHavingIn</span><span class="p">(</span><span class="s1">&#39;group_id&#39;</span><span class="p">,</span> <span class="nv">$groups</span><span class="p">);</span>
<span class="c1">// Produces: OR group_id IN (1, 2, 3)</span>
</pre></div>
</div>
</div></blockquote>
<p>You can use subqueries instead of an array of values.</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">orHavingIn</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="k">function</span><span class="p">(</span><span class="nx">BaseBuilder</span> <span class="nv">$builder</span><span class="p">)</span> <span class="p">{</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">orHavingIn</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="k">function</span><span class="p">(</span><span class="nx">BaseBuilder</span> <span class="nv">$builder</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">select</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">from</span><span class="p">(</span><span class="s1">&#39;users_jobs&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;group_id&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span>
<span class="p">});</span>
<span class="c1">// Produces: OR &quot;id&quot; IN (SELECT &quot;user_id&quot; FROM &quot;users_jobs&quot; WHERE &quot;group_id&quot; = 3)</span>
</pre></div>
</div>
</div></blockquote>
<p><strong>$builder-&gt;havingNotIn()</strong></p>
<p>Generates a HAVING field NOT IN (item, item) SQL query joined with
<p>Generates a <code class="docutils literal notranslate"><span class="pre">HAVING</span> <span class="pre">field</span> <span class="pre">NOT</span> <span class="pre">IN</span> <span class="pre">('item',</span> <span class="pre">'item')</span></code> SQL query joined with
AND if appropriate</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$groups</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">];</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$groups</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingNotIn</span><span class="p">(</span><span class="s1">&#39;group_id&#39;</span><span class="p">,</span> <span class="nv">$groups</span><span class="p">);</span>
<span class="c1">// Produces: HAVING group_id NOT IN (1, 2, 3)</span>
</pre></div>
</div>
</div></blockquote>
<p>You can use subqueries instead of an array of values.</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingNotIn</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="k">function</span><span class="p">(</span><span class="nx">BaseBuilder</span> <span class="nv">$builder</span><span class="p">)</span> <span class="p">{</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingNotIn</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="k">function</span><span class="p">(</span><span class="nx">BaseBuilder</span> <span class="nv">$builder</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">select</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">from</span><span class="p">(</span><span class="s1">&#39;users_jobs&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;group_id&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span>
<span class="p">});</span>
<span class="c1">// Produces: HAVING &quot;id&quot; NOT IN (SELECT &quot;user_id&quot; FROM &quot;users_jobs&quot; WHERE &quot;group_id&quot; = 3)</span>
</pre></div>
</div>
</div></blockquote>
<p><strong>$builder-&gt;orHavingNotIn()</strong></p>
<p>Generates a HAVING field NOT IN (item, item) SQL query joined with OR
<p>Generates a <code class="docutils literal notranslate"><span class="pre">HAVING</span> <span class="pre">field</span> <span class="pre">NOT</span> <span class="pre">IN</span> <span class="pre">('item',</span> <span class="pre">'item')</span></code> SQL query joined with OR
if appropriate</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$groups</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">];</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$groups</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingNotIn</span><span class="p">(</span><span class="s1">&#39;group_id&#39;</span><span class="p">,</span> <span class="nv">$groups</span><span class="p">);</span>
<span class="c1">// Produces: OR group_id NOT IN (1, 2, 3)</span>
</pre></div>
</div>
</div></blockquote>
<p>You can use subqueries instead of an array of values.</p>
<blockquote>
<div><div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">orHavingNotIn</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="k">function</span><span class="p">(</span><span class="nx">BaseBuilder</span> <span class="nv">$builder</span><span class="p">)</span> <span class="p">{</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">orHavingNotIn</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="k">function</span><span class="p">(</span><span class="nx">BaseBuilder</span> <span class="nv">$builder</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">select</span><span class="p">(</span><span class="s1">&#39;user_id&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">from</span><span class="p">(</span><span class="s1">&#39;users_jobs&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;group_id&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span>
<span class="p">});</span>
<span class="c1">// Produces: OR &quot;id&quot; NOT IN (SELECT &quot;user_id&quot; FROM &quot;users_jobs&quot; WHERE &quot;group_id&quot; = 3)</span>
</pre></div>
</div>
</div></blockquote>
<p><strong>$builder-&gt;havingLike()</strong></p>
<p>This method enables you to generate <strong>LIKE</strong> clauses for HAVING part or the query, useful for doing
searches.</p>
@ -941,9 +936,9 @@ AND between them:</p>
<p>If you want to control where the wildcard (%) is placed, you can use
an optional third argument. Your options are before, after and
both (which is the default).</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">,</span> <span class="s1">&#39;before&#39;</span><span class="p">);</span> <span class="c1">// Produces: HAVING `title` LIKE &#39;%match&#39; ESCAPE &#39;!&#39;</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">,</span> <span class="s1">&#39;after&#39;</span><span class="p">);</span> <span class="c1">// Produces: HAVING `title` LIKE &#39;match%&#39; ESCAPE &#39;!&#39;</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">,</span> <span class="s1">&#39;both&#39;</span><span class="p">);</span> <span class="c1">// Produces: HAVING `title` LIKE &#39;%match%&#39; ESCAPE &#39;!&#39;</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">,</span> <span class="s1">&#39;before&#39;</span><span class="p">);</span> <span class="c1">// Produces: HAVING `title` LIKE &#39;%match&#39; ESCAPE &#39;!&#39;</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">,</span> <span class="s1">&#39;after&#39;</span><span class="p">);</span> <span class="c1">// Produces: HAVING `title` LIKE &#39;match%&#39; ESCAPE &#39;!&#39;</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">havingLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">,</span> <span class="s1">&#39;both&#39;</span><span class="p">);</span> <span class="c1">// Produces: HAVING `title` LIKE &#39;%match%&#39; ESCAPE &#39;!&#39;</span>
</pre></div>
</div>
</div></blockquote>
@ -968,7 +963,8 @@ instances are joined by OR:</p>
<p><strong>$builder-&gt;notHavingLike()</strong></p>
<p>This method is identical to <code class="docutils literal notranslate"><span class="pre">havingLike()</span></code>, except that it generates
NOT LIKE statements:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">notHavingLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">);</span> <span class="c1">// HAVING `title` NOT LIKE &#39;%match% ESCAPE &#39;!&#39;</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">notHavingLike</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">);</span>
<span class="c1">// HAVING `title` NOT LIKE &#39;%match% ESCAPE &#39;!&#39;</span>
</pre></div>
</div>
<p><strong>$builder-&gt;orNotHavingLike()</strong></p>
@ -1021,18 +1017,20 @@ will default to ASC instead.</p>
<h2><a class="toc-backref" href="#id6">Limiting or Counting Results</a><a class="headerlink" href="#limiting-or-counting-results" title="Permalink to this headline"></a></h2>
<p><strong>$builder-&gt;limit()</strong></p>
<p>Lets you limit the number of rows you would like returned by the query:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">limit</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span> <span class="c1">// Produces: LIMIT 10</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">limit</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span>
<span class="c1">// Produces: LIMIT 10</span>
</pre></div>
</div>
<p>The second parameter lets you set a result offset.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">limit</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">);</span> <span class="c1">// Produces: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">limit</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">);</span>
<span class="c1">// Produces: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</span>
</pre></div>
</div>
<p><strong>$builder-&gt;countAllResults()</strong></p>
<p>Permits you to determine the number of rows in a particular Query
Builder query. Queries will accept Query Builder restrictors such as
<code class="docutils literal notranslate"><span class="pre">where()</span></code>, <code class="docutils literal notranslate"><span class="pre">orWhere()</span></code>, <code class="docutils literal notranslate"><span class="pre">like()</span></code>, <code class="docutils literal notranslate"><span class="pre">orLike()</span></code>, etc. Example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">echo</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">countAllResults</span><span class="p">();</span> <span class="c1">// Produces an integer, like 25</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">echo</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">countAllResults</span><span class="p">();</span> <span class="c1">// Produces an integer, like 25</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">like</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;match&#39;</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">from</span><span class="p">(</span><span class="s1">&#39;my_table&#39;</span><span class="p">);</span>
<span class="k">echo</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">countAllResults</span><span class="p">();</span> <span class="c1">// Produces an integer, like 17</span>
@ -1041,13 +1039,13 @@ Builder query. Queries will accept Query Builder restrictors such as
<p>However, this method also resets any field values that you may have passed
to <code class="docutils literal notranslate"><span class="pre">select()</span></code>. If you need to keep them, you can pass <code class="docutils literal notranslate"><span class="pre">false</span></code> as the
first parameter.</p>
<blockquote>
<div><p>echo $builder-&gt;countAllResults(false); // Produces an integer, like 17</p>
</div></blockquote>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">echo</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">countAllResults</span><span class="p">(</span><span class="k">false</span><span class="p">);</span> <span class="c1">// Produces an integer, like 17</span>
</pre></div>
</div>
<p><strong>$builder-&gt;countAll()</strong></p>
<p>Permits you to determine the number of rows in a particular table.
Example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">echo</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">countAll</span><span class="p">();</span> <span class="c1">// Produces an integer, like 25</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">echo</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">countAll</span><span class="p">();</span> <span class="c1">// Produces an integer, like 25</span>
</pre></div>
</div>
<p>As is in countAllResult method, this method resets any field values that you may have passed
@ -1059,14 +1057,14 @@ first parameter.</p>
<p>Query grouping allows you to create groups of WHERE clauses by enclosing them in parentheses. This will allow
you to create queries with complex WHERE clauses. Nested groups are supported. Example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">select</span><span class="p">(</span><span class="s1">&#39;*&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">from</span><span class="p">(</span><span class="s1">&#39;my_table&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">groupStart</span><span class="p">()</span>
<span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;a&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">orGroupStart</span><span class="p">()</span>
<span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="s1">&#39;b&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;c&#39;</span><span class="p">,</span> <span class="s1">&#39;c&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">groupEnd</span><span class="p">()</span>
<span class="o">-&gt;</span><span class="na">groupStart</span><span class="p">()</span>
<span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;a&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">orGroupStart</span><span class="p">()</span>
<span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="s1">&#39;b&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;c&#39;</span><span class="p">,</span> <span class="s1">&#39;c&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">groupEnd</span><span class="p">()</span>
<span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="s1">&#39;d&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">groupEnd</span><span class="p">()</span>
<span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="s1">&#39;d&#39;</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">get</span><span class="p">();</span>
<span class="c1">// Generates:</span>
@ -1075,7 +1073,7 @@ you to create queries with complex WHERE clauses. Nested groups are supported. E
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Groups need to be balanced, make sure every groupStart() is matched by a groupEnd().</p>
<p>Groups need to be balanced, make sure every <code class="docutils literal notranslate"><span class="pre">groupStart()</span></code> is matched by a <code class="docutils literal notranslate"><span class="pre">groupEnd()</span></code>.</p>
</div>
<p><strong>$builder-&gt;groupStart()</strong></p>
<p>Starts a new group by adding an opening parenthesis to the WHERE clause of the query.</p>
@ -1105,9 +1103,9 @@ you to create queries with complex WHERE clauses. Nested groups are supported. E
query. You can either pass an <strong>array</strong> or an <strong>object</strong> to the
function. Here is an example using an array:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$data</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">insert</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span>
@ -1118,9 +1116,9 @@ function. Here is an example using an array:</p>
<p>Here is an example using an object:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Myclass</span>
<span class="p">{</span>
<span class="k">public</span> <span class="nv">$title</span> <span class="o">=</span> <span class="s1">&#39;My Title&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$content</span> <span class="o">=</span> <span class="s1">&#39;My Content&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$date</span> <span class="o">=</span> <span class="s1">&#39;My Date&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$title</span> <span class="o">=</span> <span class="s1">&#39;My Title&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$content</span> <span class="o">=</span> <span class="s1">&#39;My Content&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$date</span> <span class="o">=</span> <span class="s1">&#39;My Date&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="nv">$object</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Myclass</span><span class="p">;</span>
@ -1138,9 +1136,9 @@ function. Here is an example using an array:</p>
query. So if an entry with the same primary key already exists, the query wont be inserted.
You can optionally pass an <strong>boolean</strong> to the function. Here is an example using the array of the above example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$data</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">ignore</span><span class="p">(</span><span class="k">true</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">insert</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span>
@ -1148,13 +1146,13 @@ You can optionally pass an <strong>boolean</strong> to the function. Here is an
</pre></div>
</div>
<p><strong>$builder-&gt;getCompiledInsert()</strong></p>
<p>Compiles the insertion query just like $builder-&gt;insert() but does not
<p>Compiles the insertion query just like <code class="docutils literal notranslate"><span class="pre">$builder-&gt;insert()</span></code> but does not
<em>run</em> the query. This method simply returns the SQL query as a string.</p>
<p>Example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$data</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="p">];</span>
<span class="nv">$sql</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">set</span><span class="p">(</span><span class="nv">$data</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">getCompiledInsert</span><span class="p">(</span><span class="s1">&#39;mytable&#39;</span><span class="p">);</span>
@ -1164,7 +1162,7 @@ You can optionally pass an <strong>boolean</strong> to the function. Here is an
</pre></div>
</div>
<p>The second parameter enables you to set whether or not the query builder query
will be reset (by default it will bejust like $builder-&gt;insert()):</p>
will be reset (by default it will bejust like <code class="docutils literal notranslate"><span class="pre">$builder-&gt;insert()</span></code>):</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">echo</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">set</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;My Title&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="na">getCompiledInsert</span><span class="p">(</span><span class="s1">&#39;mytable&#39;</span><span class="p">,</span> <span class="k">false</span><span class="p">);</span>
<span class="c1">// Produces string: INSERT INTO mytable (`title`) VALUES (&#39;My Title&#39;)</span>
@ -1175,10 +1173,10 @@ will be reset (by default it will bejust like $builder-&gt;insert()):</p>
</pre></div>
</div>
<p>The key thing to notice in the above example is that the second query did not
utilize <cite>$builder-&gt;from()</cite> nor did it pass a table name into the first
utilize <code class="docutils literal notranslate"><span class="pre">$builder-&gt;from()</span></code> nor did it pass a table name into the first
parameter. The reason this worked is that the query has not been executed
using <cite>$builder-&gt;insert()</cite> which resets values or reset directly using
<cite>$builder-&gt;resetQuery()</cite>.</p>
using <code class="docutils literal notranslate"><span class="pre">$builder-&gt;insert()</span></code> which resets values or reset directly using
<code class="docutils literal notranslate"><span class="pre">$builder-&gt;resetQuery()</span></code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This method doesnt work for batch inserts.</p>
@ -1188,16 +1186,16 @@ using <cite>$builder-&gt;insert()</cite> which resets values or reset directly u
query. You can either pass an <strong>array</strong> or an <strong>object</strong> to the
function. Here is an example using an array:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$data</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="p">],</span>
<span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;Another title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;Another Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;Another date&#39;</span><span class="p">,</span>
<span class="p">],</span>
<span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="p">],</span>
<span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;Another title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;Another Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;Another date&#39;</span><span class="p">,</span>
<span class="p">],</span>
<span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">insertBatch</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span>
@ -1221,9 +1219,9 @@ logics with different combinations of <code class="docutils literal notranslate
<code class="docutils literal notranslate"><span class="pre">delete()</span></code> and <code class="docutils literal notranslate"><span class="pre">insert()</span></code> calls.</p>
<p>Example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$data</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My title&#39;</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My Name&#39;</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;My date&#39;</span><span class="p">,</span>
<span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">replace</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span>
@ -1241,7 +1239,8 @@ automatically escaped, just like with <code class="docutils literal notranslate"
<p><strong>It can be used instead of passing a data array directly to the insert
or update functions:</strong></p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">set</span><span class="p">(</span><span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="nv">$name</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">insert</span><span class="p">();</span> <span class="c1">// Produces: INSERT INTO mytable (`name`) VALUES (&#39;{$name}&#39;)</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">insert</span><span class="p">();</span>
<span class="c1">// Produces: INSERT INTO mytable (`name`) VALUES (&#39;{$name}&#39;)</span>
</pre></div>
</div>
<p>If you use multiple function called they will be assembled properly
@ -1258,18 +1257,20 @@ difference, here is <code class="docutils literal notranslate"><span class="pre"
parameter.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">set</span><span class="p">(</span><span class="s1">&#39;field&#39;</span><span class="p">,</span> <span class="s1">&#39;field+1&#39;</span><span class="p">,</span> <span class="k">false</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">update</span><span class="p">();</span> <span class="c1">// gives UPDATE mytable SET field = field+1 WHERE `id` = 2</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">update</span><span class="p">();</span>
<span class="c1">// gives UPDATE mytable SET field = field+1 WHERE `id` = 2</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">set</span><span class="p">(</span><span class="s1">&#39;field&#39;</span><span class="p">,</span> <span class="s1">&#39;field+1&#39;</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">update</span><span class="p">();</span> <span class="c1">// gives UPDATE `mytable` SET `field` = &#39;field+1&#39; WHERE `id` = 2</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">update</span><span class="p">();</span>
<span class="c1">// gives UPDATE `mytable` SET `field` = &#39;field+1&#39; WHERE `id` = 2</span>
</pre></div>
</div>
<p>You can also pass an associative array to this function:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$array</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="nv">$name</span><span class="p">,</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="nv">$title</span><span class="p">,</span>
<span class="s1">&#39;status&#39;</span> <span class="o">=&gt;</span> <span class="nv">$status</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="nv">$name</span><span class="p">,</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="nv">$title</span><span class="p">,</span>
<span class="s1">&#39;status&#39;</span> <span class="o">=&gt;</span> <span class="nv">$status</span><span class="p">,</span>
<span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">set</span><span class="p">(</span><span class="nv">$array</span><span class="p">);</span>
@ -1279,9 +1280,9 @@ parameter.</p>
<p>Or an object:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Myclass</span>
<span class="p">{</span>
<span class="k">public</span> <span class="nv">$title</span> <span class="o">=</span> <span class="s1">&#39;My Title&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$content</span> <span class="o">=</span> <span class="s1">&#39;My Content&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$date</span> <span class="o">=</span> <span class="s1">&#39;My Date&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$title</span> <span class="o">=</span> <span class="s1">&#39;My Title&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$content</span> <span class="o">=</span> <span class="s1">&#39;My Content&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$date</span> <span class="o">=</span> <span class="s1">&#39;My Date&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="nv">$object</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Myclass</span><span class="p">;</span>
@ -1294,26 +1295,26 @@ parameter.</p>
supply. You can pass an <strong>array</strong> or an <strong>object</strong> to the function. Here
is an example using an array:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$data</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="nv">$title</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="nv">$name</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="nv">$date</span><span class="p">,</span>
<span class="s1">&#39;title&#39;</span> <span class="o">=&gt;</span> <span class="nv">$title</span><span class="p">,</span>
<span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="nv">$name</span><span class="p">,</span>
<span class="s1">&#39;date&#39;</span> <span class="o">=&gt;</span> <span class="nv">$date</span><span class="p">,</span>
<span class="p">];</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="nv">$id</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">update</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span>
<span class="c1">// Produces:</span>
<span class="c1">//</span>
<span class="c1">// UPDATE mytable</span>
<span class="c1">// SET title = &#39;{$title}&#39;, name = &#39;{$name}&#39;, date = &#39;{$date}&#39;</span>
<span class="c1">// WHERE id = $id</span>
<span class="c1">// UPDATE mytable</span>
<span class="c1">// SET title = &#39;{$title}&#39;, name = &#39;{$name}&#39;, date = &#39;{$date}&#39;</span>
<span class="c1">// WHERE id = $id</span>
</pre></div>
</div>
<p>Or you can supply an object:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Myclass</span>
<span class="p">{</span>
<span class="k">public</span> <span class="nv">$title</span> <span class="o">=</span> <span class="s1">&#39;My Title&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$content</span> <span class="o">=</span> <span class="s1">&#39;My Content&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$date</span> <span class="o">=</span> <span class="s1">&#39;My Date&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$title</span> <span class="o">=</span> <span class="s1">&#39;My Title&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$content</span> <span class="o">=</span> <span class="s1">&#39;My Content&#39;</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$date</span> <span class="o">=</span> <span class="s1">&#39;My Date&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="nv">$object</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Myclass</span><span class="p">;</span>
@ -1330,7 +1331,7 @@ is an example using an array:</p>
<p class="admonition-title">Note</p>
<p>All values are escaped automatically producing safer queries.</p>
</div>
<p>Youll notice the use of the $builder-&gt;where() function, enabling you
<p>Youll notice the use of the <code class="docutils literal notranslate"><span class="pre">$builder-&gt;where()</span></code> function, enabling you
to set the WHERE clause. You can optionally pass this information
directly into the update function as a string:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">update</span><span class="p">(</span><span class="nv">$data</span><span class="p">,</span> <span class="s2">&quot;id = 4&quot;</span><span class="p">);</span>
@ -1340,7 +1341,7 @@ directly into the update function as a string:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">update</span><span class="p">(</span><span class="nv">$data</span><span class="p">,</span> <span class="p">[</span><span class="s1">&#39;id&#39;</span> <span class="o">=&gt;</span> <span class="nv">$id</span><span class="p">]);</span>
</pre></div>
</div>
<p>You may also use the $builder-&gt;set() function described above when
<p>You may also use the <code class="docutils literal notranslate"><span class="pre">$builder-&gt;set()</span></code> function described above when
performing updates.</p>
<p><strong>$builder-&gt;updateBatch()</strong></p>
<p>Generates an update string based on the data you supply, and runs the query.
@ -1387,7 +1388,7 @@ returns the number of rows affected.</p>
<p><strong>$builder-&gt;getCompiledUpdate()</strong></p>
<p>This works exactly the same way as <code class="docutils literal notranslate"><span class="pre">$builder-&gt;getCompiledInsert()</span></code> except
that it produces an UPDATE SQL string instead of an INSERT SQL string.</p>
<p>For more information view documentation for <cite>$builder-&gt;getCompiledInsert()</cite>.</p>
<p>For more information view documentation for <code class="docutils literal notranslate"><span class="pre">$builder-&gt;getCompiledInsert()</span></code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This method doesnt work for batched updates.</p>
@ -1397,11 +1398,12 @@ that it produces an UPDATE SQL string instead of an INSERT SQL string.</p>
<h2><a class="toc-backref" href="#id10">Deleting Data</a><a class="headerlink" href="#deleting-data" title="Permalink to this headline"></a></h2>
<p><strong>$builder-&gt;delete()</strong></p>
<p>Generates a delete SQL string and runs the query.</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">delete</span><span class="p">([</span><span class="s1">&#39;id&#39;</span> <span class="o">=&gt;</span> <span class="nv">$id</span><span class="p">]);</span> <span class="c1">// Produces: // DELETE FROM mytable // WHERE id = $id</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">delete</span><span class="p">([</span><span class="s1">&#39;id&#39;</span> <span class="o">=&gt;</span> <span class="nv">$id</span><span class="p">]);</span>
<span class="c1">// Produces: // DELETE FROM mytable // WHERE id = $id</span>
</pre></div>
</div>
<p>The first parameter is the where clause.
You can also use the where() or or_where() functions instead of passing
You can also use the <code class="docutils literal notranslate"><span class="pre">where()</span></code> or <code class="docutils literal notranslate"><span class="pre">or_where()</span></code> functions instead of passing
the data to the first parameter of the function:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="nv">$id</span><span class="p">);</span>
<span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">delete</span><span class="p">();</span>
@ -1411,12 +1413,13 @@ the data to the first parameter of the function:</p>
<span class="c1">// WHERE id = $id</span>
</pre></div>
</div>
<p>If you want to delete all data from a table, you can use the truncate()
function, or emptyTable().</p>
<p>If you want to delete all data from a table, you can use the <code class="docutils literal notranslate"><span class="pre">truncate()</span></code>
function, or <code class="docutils literal notranslate"><span class="pre">emptyTable()</span></code>.</p>
<p><strong>$builder-&gt;emptyTable()</strong></p>
<p>Generates a delete SQL string and runs the
query:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">emptyTable</span><span class="p">(</span><span class="s1">&#39;mytable&#39;</span><span class="p">);</span> <span class="c1">// Produces: DELETE FROM mytable</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">emptyTable</span><span class="p">(</span><span class="s1">&#39;mytable&#39;</span><span class="p">);</span>
<span class="c1">// Produces: DELETE FROM mytable</span>
</pre></div>
</div>
<p><strong>$builder-&gt;truncate()</strong></p>
@ -1429,13 +1432,13 @@ query:</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If the TRUNCATE command isnt available, truncate() will
<p>If the TRUNCATE command isnt available, <code class="docutils literal notranslate"><span class="pre">truncate()</span></code> will
execute as “DELETE FROM table”.</p>
</div>
<p><strong>$builder-&gt;getCompiledDelete()</strong></p>
<p>This works exactly the same way as <code class="docutils literal notranslate"><span class="pre">$builder-&gt;getCompiledInsert()</span></code> except
that it produces a DELETE SQL string instead of an INSERT SQL string.</p>
<p>For more information view documentation for $builder-&gt;getCompiledInsert().</p>
<p>For more information view documentation for <code class="docutils literal notranslate"><span class="pre">$builder-&gt;getCompiledInsert()</span></code>.</p>
</div>
<div class="section" id="method-chaining">
<h2><a class="toc-backref" href="#id11">Method Chaining</a><a class="headerlink" href="#method-chaining" title="Permalink to this headline"></a></h2>
@ -1452,11 +1455,11 @@ multiple functions. Consider this example:</p>
<span id="ar-caching"></span><h2><a class="toc-backref" href="#id12">Resetting Query Builder</a><a class="headerlink" href="#resetting-query-builder" title="Permalink to this headline"></a></h2>
<p><strong>$builder-&gt;resetQuery()</strong></p>
<p>Resetting Query Builder allows you to start fresh with your query without
executing it first using a method like $builder-&gt;get() or $builder-&gt;insert().</p>
executing it first using a method like <code class="docutils literal notranslate"><span class="pre">$builder-&gt;get()</span></code> or <code class="docutils literal notranslate"><span class="pre">$builder-&gt;insert()</span></code>.</p>
<p>This is useful in situations where you are using Query Builder to generate SQL
(ex. <code class="docutils literal notranslate"><span class="pre">$builder-&gt;getCompiledSelect()</span></code>) but then choose to, for instance,
(e.g., <code class="docutils literal notranslate"><span class="pre">$builder-&gt;getCompiledSelect()</span></code>) but then choose to, for instance,
run the query:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="c1">// Note that the second parameter of the get_compiled_select method is false</span>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="c1">// Note that the second parameter of the ``get_compiled_select`` method is false</span>
<span class="nv">$sql</span> <span class="o">=</span> <span class="nv">$builder</span><span class="o">-&gt;</span><span class="na">select</span><span class="p">([</span><span class="s1">&#39;field1&#39;</span><span class="p">,</span><span class="s1">&#39;field2&#39;</span><span class="p">])</span>
<span class="o">-&gt;</span><span class="na">where</span><span class="p">(</span><span class="s1">&#39;field3&#39;</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
<span class="o">-&gt;</span><span class="na">getCompiledSelect</span><span class="p">(</span><span class="k">false</span><span class="p">);</span>
@ -2631,9 +2634,7 @@ multiple queries will be executed, each handling up to
<dl class="method">
<dt id="increment">
<code class="sig-name descname">increment</code><span class="sig-paren">(</span><em class="sig-param">$column</em><span class="optional">[</span>, <em class="sig-param">$value = 1</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#increment" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="field-list simple">
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>$column</strong> (<em>string</em>) The name of the column to increment</p></li>
@ -2644,12 +2645,12 @@ multiple queries will be executed, each handling up to
<p>Increments the value of a field by the specified amount. If the field
is not a numeric field, like a <code class="docutils literal notranslate"><span class="pre">VARCHAR</span></code>, it will likely be replaced
with <code class="docutils literal notranslate"><span class="pre">$value</span></code>.</p>
</dd></dl>
<dl class="method">
<dt id="decrement">
<code class="sig-name descname">decrement</code><span class="sig-paren">(</span><em class="sig-param">$column</em><span class="optional">[</span>, <em class="sig-param">$value = 1</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#decrement" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="field-list simple">
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>$column</strong> (<em>string</em>) The name of the column to decrement</p></li>
@ -2660,6 +2661,8 @@ with <code class="docutils literal notranslate"><span class="pre">$value</span><
<p>Decrements the value of a field by the specified amount. If the field
is not a numeric field, like a <code class="docutils literal notranslate"><span class="pre">VARCHAR</span></code>, it will likely be replaced
with <code class="docutils literal notranslate"><span class="pre">$value</span></code>.</p>
</dd></dl>
<dl class="method">
<dt id="truncate">
<code class="sig-name descname">truncate</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#truncate" title="Permalink to this definition"></a></dt>
@ -2790,7 +2793,7 @@ a <code class="docutils literal notranslate"><span class="pre">DELETE</span></co
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -526,32 +526,32 @@ then you should provide a <code class="docutils literal notranslate"><span class
<p>Example:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">User</span>
<span class="p">{</span>
<span class="k">public</span> <span class="nv">$id</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$email</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$username</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$id</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$email</span><span class="p">;</span>
<span class="k">public</span> <span class="nv">$username</span><span class="p">;</span>
<span class="k">protected</span> <span class="nv">$last_login</span><span class="p">;</span>
<span class="k">protected</span> <span class="nv">$last_login</span><span class="p">;</span>
<span class="k">public</span> <span class="k">function</span> <span class="nf">lastLogin</span><span class="p">(</span><span class="nv">$format</span><span class="p">)</span>
<span class="k">public</span> <span class="k">function</span> <span class="nf">lastLogin</span><span class="p">(</span><span class="nv">$format</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">return</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">lastLogin</span><span class="o">-&gt;</span><span class="na">format</span><span class="p">(</span><span class="nv">$format</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="fm">__set</span><span class="p">(</span><span class="nv">$name</span><span class="p">,</span> <span class="nv">$value</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nv">$name</span> <span class="o">===</span> <span class="s1">&#39;lastLogin&#39;</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">return</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">lastLogin</span><span class="o">-&gt;</span><span class="na">format</span><span class="p">(</span><span class="nv">$format</span><span class="p">);</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">lastLogin</span> <span class="o">=</span> <span class="nx">DateTime</span><span class="o">::</span><span class="na">createFromFormat</span><span class="p">(</span><span class="s1">&#39;U&#39;</span><span class="p">,</span> <span class="nv">$value</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="fm">__set</span><span class="p">(</span><span class="nv">$name</span><span class="p">,</span> <span class="nv">$value</span><span class="p">)</span>
<span class="k">public</span> <span class="k">function</span> <span class="fm">__get</span><span class="p">(</span><span class="nv">$name</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nb">isset</span><span class="p">(</span><span class="nv">$this</span><span class="o">-&gt;</span><span class="nv">$name</span><span class="p">))</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nv">$name</span> <span class="o">===</span> <span class="s1">&#39;lastLogin&#39;</span><span class="p">)</span>
<span class="p">{</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">lastLogin</span> <span class="o">=</span> <span class="nx">DateTime</span><span class="o">::</span><span class="na">createFromFormat</span><span class="p">(</span><span class="s1">&#39;U&#39;</span><span class="p">,</span> <span class="nv">$value</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">public</span> <span class="k">function</span> <span class="fm">__get</span><span class="p">(</span><span class="nv">$name</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nb">isset</span><span class="p">(</span><span class="nv">$this</span><span class="o">-&gt;</span><span class="nv">$name</span><span class="p">))</span>
<span class="p">{</span>
<span class="k">return</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="nv">$name</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="nv">$name</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
@ -568,9 +568,9 @@ The only parameter is the name of the class to instantiate.</p>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$rows</span> <span class="k">as</span> <span class="nv">$row</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">id</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">email</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">last_login</span><span class="p">(</span><span class="s1">&#39;Y-m-d&#39;</span><span class="p">);</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">id</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">email</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">last_login</span><span class="p">(</span><span class="s1">&#39;Y-m-d&#39;</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</div>
@ -584,8 +584,8 @@ number of the results. The second parameter is the class name to instantiate.</p
<span class="k">if</span> <span class="p">(</span><span class="nb">isset</span><span class="p">(</span><span class="nv">$row</span><span class="p">))</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">email</span><span class="p">;</span> <span class="c1">// access attributes</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">last_login</span><span class="p">(</span><span class="s1">&#39;Y-m-d&#39;</span><span class="p">);</span> <span class="c1">// access class methods</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">email</span><span class="p">;</span> <span class="c1">// access attributes</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">last_login</span><span class="p">(</span><span class="s1">&#39;Y-m-d&#39;</span><span class="p">);</span> <span class="c1">// access class methods</span>
<span class="p">}</span>
</pre></div>
</div>
@ -610,7 +610,7 @@ the method using your query result object:</p>
Make sure to call the method using your query result object:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$query</span> <span class="o">=</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">query</span><span class="p">(</span><span class="s1">&#39;SELECT * FROM my_table&#39;</span><span class="p">);</span>
<span class="k">echo</span> <span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getFieldNames</span><span class="p">();</span>
<span class="k">echo</span> <span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getFieldNames</span><span class="p">();</span>
</pre></div>
</div>
<p><strong>getNumRows()</strong></p>
@ -638,10 +638,10 @@ result has been generated in order to cut down on memory consumption.</p>
<span class="k">foreach</span> <span class="p">(</span><span class="nv">$query</span><span class="o">-&gt;</span><span class="na">getResult</span><span class="p">()</span> <span class="k">as</span> <span class="nv">$row</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">title</span><span class="p">;</span>
<span class="k">echo</span> <span class="nv">$row</span><span class="o">-&gt;</span><span class="na">title</span><span class="p">;</span>
<span class="p">}</span>
<span class="nv">$query</span><span class="o">-&gt;</span><span class="na">freeResult</span><span class="p">();</span> <span class="c1">// The $query result object will no longer be available</span>
<span class="nv">$query</span><span class="o">-&gt;</span><span class="na">freeResult</span><span class="p">();</span> <span class="c1">// The $query result object will no longer be available</span>
<span class="nv">$query2</span> <span class="o">=</span> <span class="nv">$db</span><span class="o">-&gt;</span><span class="na">query</span><span class="p">(</span><span class="s1">&#39;SELECT name FROM some_table&#39;</span><span class="p">);</span>
@ -671,8 +671,7 @@ Most notably - you wont be able to use it with PDO.</p>
<dl class="class">
<dt>
<code class="sig-name descname">CodeIgniter\Database\BaseResult</code></dt>
<dd><blockquote>
<div><dl class="method">
<dd><dl class="method">
<dt id="getResult">
<code class="sig-name descname">getResult</code><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param">$type = 'object'</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#getResult" title="Permalink to this definition"></a></dt>
<dd><dl class="field-list simple">
@ -814,14 +813,12 @@ requested form.</p>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>$n</strong> (<em>int</em>) Index of the query results row to be returned</p></li>
<li><p><strong>$n</strong> (<em>int</em>) Index of the query results row to be returned
:returns: The requested row or NULL if it doesnt exist</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The requested row or NULL if it doesnt exist</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>stdClass</p>
<dt class="field-even">Return type</dt>
<dd class="field-even"><p>stdClass</p>
</dd>
</dl>
<p>Returns the requested result row as an object of type
@ -978,22 +975,21 @@ requested class.</p>
<p>Usage: see <a class="reference internal" href="#result-helper-methods">Result Helper Methods</a>.</p>
</dd></dl>
</div></blockquote>
<dl class="method">
<dt id="getFieldNames">
<code class="sig-name descname">getFieldNames</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#getFieldNames" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">returns</dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Array of column names</p>
</dd>
<dt class="field-even">rtype</dt>
<dt class="field-even">Return type</dt>
<dd class="field-even"><p>array</p>
</dd>
</dl>
<p>Returns an array containing the field names in the
result set.</p>
</div></blockquote>
</dd></dl>
<dl class="method">
<dt id="getFieldData">
<code class="sig-name descname">getFieldData</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#getFieldData" title="Permalink to this definition"></a></dt>
@ -1009,22 +1005,20 @@ result set.</p>
field meta-data.</p>
</dd></dl>
</dd></dl>
<dl class="method">
<dt id="getNumRows">
<code class="sig-name descname">getNumRows</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#getNumRows" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">returns</dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Number of rows in result set</p>
</dd>
<dt class="field-even">rtype</dt>
<dt class="field-even">Return type</dt>
<dd class="field-even"><p>int</p>
</dd>
</dl>
<p>Returns number of rows returned by the query</p>
</div></blockquote>
</dd></dl>
<dl class="method">
<dt id="freeResult">
<code class="sig-name descname">freeResult</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#freeResult" title="Permalink to this definition"></a></dt>
@ -1039,8 +1033,6 @@ field meta-data.</p>
</dd></dl>
</dd></dl>
</div>
</div>
@ -1060,7 +1052,7 @@ field meta-data.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -373,7 +373,7 @@ manually if you choose to, but theres really no benefit).</p>
<div class="section" id="running-transactions">
<h2>Running Transactions<a class="headerlink" href="#running-transactions" title="Permalink to this headline"></a></h2>
<p>To run your queries using transactions you will use the
$this-&gt;db-&gt;transStart() and $this-&gt;db-&gt;transComplete() functions as
<code class="docutils literal notranslate"><span class="pre">$this-&gt;db-&gt;transStart()</span></code> and <code class="docutils literal notranslate"><span class="pre">$this-&gt;db-&gt;transComplete()</span></code> functions as
follows:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transStart</span><span class="p">();</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">query</span><span class="p">(</span><span class="s1">&#39;AN SQL QUERY...&#39;</span><span class="p">);</span>
@ -410,7 +410,7 @@ debugging is turned off, you can manage your own errors like this:</p>
<span class="k">if</span> <span class="p">(</span><span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transStatus</span><span class="p">()</span> <span class="o">===</span> <span class="k">FALSE</span><span class="p">)</span>
<span class="p">{</span>
<span class="c1">// generate an error... or use the log_message() function to log your error</span>
<span class="c1">// generate an error... or use the log_message() function to log your error</span>
<span class="p">}</span>
</pre></div>
</div>
@ -418,7 +418,7 @@ debugging is turned off, you can manage your own errors like this:</p>
<div class="section" id="disabling-transactions">
<h2>Disabling Transactions<a class="headerlink" href="#disabling-transactions" title="Permalink to this headline"></a></h2>
<p>Transactions are enabled by default. If you would like to disable transactions you
can do so using $this-&gt;db-&gt;transOff():</p>
can do so using <code class="docutils literal notranslate"><span class="pre">$this-&gt;db-&gt;transOff()</span></code>:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transOff</span><span class="p">();</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transStart</span><span class="p">();</span>
@ -434,7 +434,7 @@ as they are when running queries without transactions.</p>
<p>You can optionally put the transaction system into “test mode”, which
will cause your queries to be rolled back even if the queries produce
a valid result. To use test mode simply set the first parameter in the
$this-&gt;db-&gt;transStart() function to TRUE:</p>
<code class="docutils literal notranslate"><span class="pre">$this-&gt;db-&gt;transStart()</span></code> function to TRUE:</p>
<div class="highlight-html+php notranslate"><div class="highlight"><pre><span></span><span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transStart</span><span class="p">(</span><span class="k">true</span><span class="p">);</span> <span class="c1">// Query will be rolled back</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">query</span><span class="p">(</span><span class="s1">&#39;AN SQL QUERY...&#39;</span><span class="p">);</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transComplete</span><span class="p">();</span>
@ -452,18 +452,18 @@ $this-&gt;db-&gt;transStart() function to TRUE:</p>
<span class="k">if</span> <span class="p">(</span><span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transStatus</span><span class="p">()</span> <span class="o">===</span> <span class="k">FALSE</span><span class="p">)</span>
<span class="p">{</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transRollback</span><span class="p">();</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transRollback</span><span class="p">();</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="p">{</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transCommit</span><span class="p">();</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">db</span><span class="o">-&gt;</span><span class="na">transCommit</span><span class="p">();</span>
<span class="p">}</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Make sure to use $this-&gt;db-&gt;transBegin() when running manual
transactions, <strong>NOT</strong> $this-&gt;db-&gt;transStart().</p>
<p>Make sure to use <code class="docutils literal notranslate"><span class="pre">$this-&gt;db-&gt;transBegin()</span></code> when running manual
transactions, <strong>NOT</strong> <code class="docutils literal notranslate"><span class="pre">$this-&gt;db-&gt;transStart()</span></code>.</p>
</div>
</div>
</div>
@ -484,7 +484,7 @@ transactions, <strong>NOT</strong> $this-&gt;db-&gt;transStart().</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -398,7 +398,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -950,7 +950,7 @@ change the name, you can add a “name” key into the field defining array.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -372,7 +372,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -791,7 +791,7 @@ have not yet been run, and runs them in order of their version (namespaces inter
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -493,7 +493,7 @@ seed file to <code class="docutils literal notranslate"><span class="pre">app/Bl
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -377,7 +377,7 @@ modules, projects, and the framework itself.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -421,7 +421,7 @@ Controller instead:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -377,7 +377,7 @@ attempting it.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -418,7 +418,7 @@ it a clearer target!</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -475,7 +475,7 @@ instead of the native ones (this is known as “method overriding”). This allo
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -470,7 +470,7 @@ When <strong>true</strong>, all events will be skipped over during the trigger m
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -375,7 +375,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -404,7 +404,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -422,7 +422,7 @@ have to expire normally.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -1110,7 +1110,7 @@ instance every time.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -647,7 +647,7 @@ described above, using methods named for each configuration class you wish to ex
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -455,7 +455,7 @@ more detail in the Handling Different Environments section of the
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -512,7 +512,7 @@ redirect code to use instead of the default (<code class="docutils literal notra
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -523,7 +523,7 @@ Browse each one to see what they do.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -379,7 +379,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -555,7 +555,7 @@ alias to your new class name.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -428,7 +428,7 @@ modify <code class="docutils literal notranslate"><span class="pre">spark</span>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -568,7 +568,7 @@ file follows the same directory structures as the main application directory.</p
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -429,7 +429,7 @@ settings of the root and alias directives), and then sends the request to the in
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -904,7 +904,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -556,7 +556,7 @@ each nesting level and handle it accordingly.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -467,7 +467,7 @@ parameters.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -444,7 +444,7 @@ module in CodeIgniter 4.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -710,7 +710,7 @@ cause an error to be triggered if the path cannot be resolved.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -1295,7 +1295,7 @@ class instead of the generic helper function.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -1080,7 +1080,7 @@ pulled from <cite>application/Config/DocTypes.php</cite>, or they could be over-
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -382,7 +382,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -642,7 +642,7 @@ Example:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -531,7 +531,7 @@ It will return null for any value outside that range .</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -453,7 +453,7 @@ It leaves the image URL as plain text.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -413,7 +413,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -1005,7 +1005,7 @@ at the end.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -956,7 +956,7 @@ any other applicable characters in the URL:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -425,7 +425,7 @@ character entities, e.g., &amp;#123;. Example:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -481,7 +481,7 @@ specify the type of compression the client supports:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -767,7 +767,7 @@ the $rules array with the name of the group as defined in <code class="docutils
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -572,7 +572,7 @@ a list of URI patterns that filter should apply to:</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -956,7 +956,7 @@ as an array.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -378,7 +378,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -711,7 +711,7 @@ Acceptable values are <code class="docutils literal notranslate"><span class="pr
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -385,7 +385,7 @@ with the default configuration, and must have additional packages enabled to wor
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -598,7 +598,7 @@ Can optionally filter the input when you retrieve it by passing in a filter.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -717,7 +717,7 @@ and <cite>presenter()</cite> with their corresponding Controller functions.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -919,7 +919,7 @@ a valid class/method pair, just like you would show in any route, or a Closure:<
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -606,7 +606,7 @@
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -399,7 +399,7 @@ lines to enable “curl” and “intl”, for instance.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -526,7 +526,7 @@ they can be added to your project in a similar fashion.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -416,7 +416,7 @@ to the translations.</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -482,7 +482,7 @@ but which showcase it or make it easier to work with!</p>
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -580,7 +580,7 @@ paths align with the expected directory structure for your installation method.<
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

View File

@ -428,7 +428,7 @@ It would be a good idea to check them if things arent working the way you exp
<p>
&#169; Copyright 2019-2021 CodeIgniter Foundation.
<span class="lastupdated">
Last updated on Jan 23, 2021.
Last updated on Jan 25, 2021.
</span>
</p>

Some files were not shown because too many files have changed in this diff Show More