sickcat2004 发表于 2011-12-21 08:44

PHP5 PDO Singleton Class

http://tonylandis.com/php/php5-pdo-singleton-class/<br><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li>$dbObj =&amp; new sdb("mysql:host=localhost;dbname=testdb", 'username', 'password');</li></ol></div><br><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li><span style="color:#000000;"><span style="color:#0000CC;">&lt;</span><span style="color:#0000CC;">?</span><span style="color:#0000FF;">php</span><br></span></li><li>
<br></li><li>
<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;* PDO SINGLETON CLASS<br></li><li>
&nbsp;*<br></li><li>
&nbsp;* @author Tony Landis<br></li><li>
&nbsp;* @link http://www.tonylandis.com<br></li><li>
&nbsp;* @license Use how you like it, just please don't remove or alter this PHPDoc<br></li><li>
&nbsp;*/ <br></li><li>
<span style="color:#0000FF;">class</span> sdb <br></li><li>
<span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* The singleton instance<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">static</span> <span style="color:#0000FF;">private</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">;</span> <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Creates a PDO instance representing a connection to a database and makes the instance available as a singleton<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @param string $dsn The full DSN, eg: mysql:host=localhost;dbname=testdb<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @param string $username The user name for the DSN string. This parameter is optional for some PDO drivers.<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @param string $password The password for the DSN string. This parameter is optional for some PDO drivers.<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @param array $driver_options A key=&gt;value array of driver-specific connection options<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @return PDO<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> __construct<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">dsn</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">username</span><span style="color:#0000CC;">=</span><span style="color:#0000FF;">false</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">password</span><span style="color:#0000CC;">=</span><span style="color:#0000FF;">false</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">driver_options</span><span style="color:#0000CC;">=</span><span style="color:#0000FF;">false</span><span style="color:#0000CC;">)</span> <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">if</span><span style="color:#0000CC;">(</span><span style="color:#0000CC;">!</span>self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span> <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;      <span style="color:#0000FF;">try</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span> <span style="color:#0000CC;">=</span> <span style="color:#0000FF;">new</span> PDO<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">dsn</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">username</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">password</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">driver_options</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span> <span style="color:#0000FF;">catch</span> <span style="color:#0000CC;">(</span>PDOException <span style="color:#0000FF;">$</span><span style="color:#008080;">e</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span> <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   <span style="color:#FF0000;">die</span><span style="color:#0000CC;">(</span><span style="color:#FF00FF;">"PDO CONNECTION ERROR: "</span> <span style="color:#0000CC;">.</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">e</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>getMessage<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">.</span> <span style="color:#FF00FF;">"&lt;br/&gt;"</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">;</span>    &nbsp;&nbsp;&nbsp;&nbsp;    &nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp; <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Initiates a transaction<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @return bool<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> beginTransaction<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>beginTransaction<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp; * Commits a transaction<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp; *<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp; * @return bool<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp; */<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> commit<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>commit<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp; * Fetch the SQLSTATE associated with the last operation on the database handle<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp; * <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp; * @return string <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp; */<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> errorCode<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>errorCode<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Fetch extended error information associated with the last operation on the database handle<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return array<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> errorInfo<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>errorInfo<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Execute an SQL statement and return the number of affected rows<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param string $statement<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> <span style="color:#FF0000;">exec</span><span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span><span style="color:#FF0000;">exec</span><span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Retrieve a database connection attribute<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param int $attribute<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return mixed<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> getAttribute<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">attribute</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>getAttribute<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">attribute</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Return an array of available PDO drivers<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return array<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> getAvailableDrivers<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> Self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>getAvailableDrivers<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Returns the ID of the last inserted row or sequence value<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param string $name Name of the sequence object from which the ID should be returned.<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return string<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> lastInsertId<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">name</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>lastInsertId<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">name</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Prepares a statement for execution and returns a statement object <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param string $statement A valid SQL statement for the target database server<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param array $driver_options Array of one or more key=&gt;value pairs to set attribute values for the PDOStatement obj <br></li><li>
returned<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return PDOStatement<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> prepare <span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">driver_options</span><span style="color:#0000CC;">=</span><span style="color:#0000FF;">false</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">if</span><span style="color:#0000CC;">(</span><span style="color:#0000CC;">!</span><span style="color:#0000FF;">$</span><span style="color:#008080;">driver_options</span><span style="color:#0000CC;">)</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">driver_options</span><span style="color:#0000CC;">=</span><span style="color:#FF0000;">array</span><span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>prepare<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">driver_options</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Executes an SQL statement, returning a result set as a PDOStatement object<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param string $statement<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return PDOStatement<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> query<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>query<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Execute query and return all rows in assoc array<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param string $statement<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return array<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> queryFetchAllAssoc<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>query<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>fetchAll<span style="color:#0000CC;">(</span>PDO<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span>FETCH_ASSOC<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Execute query and return one row in assoc array<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param string $statement<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return array<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> queryFetchRowAssoc<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>query<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>fetch<span style="color:#0000CC;">(</span>PDO<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span>FETCH_ASSOC<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span>    &nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Execute query and select one column only <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param string $statement<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return mixed<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> queryFetchColAssoc<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>query<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">statement</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>fetchColumn<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span>    &nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Quotes a string for use in a query<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param string $input<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param int $parameter_type<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return string<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> quote <span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">input</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">parameter_type</span><span style="color:#0000CC;">=</span>0<span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>quote<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">input</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">parameter_type</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Rolls back a transaction<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return bool<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> rollBack<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>rollBack<span style="color:#0000CC;">(</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span>      <br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF9900;">/**<br></span></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Set an attribute<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param int $attribute<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @param mixed $value<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @return bool<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">public</span> <span style="color:#0000FF;">function</span> setAttribute<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">attribute</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">value</span><span style="color:#0000CC;">)</span> <span style="color:#0000CC;">{</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">return</span> self<span style="color:#0000CC;">:</span><span style="color:#0000CC;">:</span><span style="color:#0000FF;">$</span><span style="color:#008080;">PDOInstance</span><span style="color:#0000CC;">-</span><span style="color:#0000CC;">&gt;</span>setAttribute<span style="color:#0000CC;">(</span><span style="color:#0000FF;">$</span><span style="color:#008080;">attribute</span><span style="color:#0000CC;">,</span> <span style="color:#0000FF;">$</span><span style="color:#008080;">value</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br></li><li>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">}</span><br></li><li>
<span style="color:#0000CC;">}</span><br></li><li>
<span style="color:#0000CC;">?</span><span style="color:#0000CC;">&gt;</span></li></ol></div>
页: [1]
查看完整版本: PHP5 PDO Singleton Class