ADOdb

Database Abstraction Layer for PHP

User Tools

Site Tools


v5:database:pdo

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
v5:database:pdo [2020/01/13 13:09] – Move tag to bottom dregadv5:database:pdo [2022/02/11 12:01] – [Description] move info about pdo driver usage to wrap dregad
Line 3: Line 3:
  
 ===== Description ===== ===== Description =====
-This driver supports connections using the standardized [[http://php.net/manual/en/book.pdo.php|PHP Data Objects]] connectionThe ''pdo'' driver itself cannot be used, it must be used with one of the supported drivers:+ 
 +This driver supports connections using the standardized [[http://php.net/manual/en/book.pdo.php|PHP Data Objects]].  
 + 
 +Supported drivers:
  
 ^PHP Driver^Description^ADOdb Connector^ ^PHP Driver^Description^ADOdb Connector^
Line 14: Line 17:
 |pdo_sqlsrv|SQL Server using Windows Native Client|sqlsrv| |pdo_sqlsrv|SQL Server using Windows Native Client|sqlsrv|
    
 +<WRAP important>
 +Note that the //pdo// driver cannot be used on its own. It is a technical component that is used internally by the above drivers. 
 +</WRAP>
 +
 +
 ===== Establishing A Connection ===== ===== Establishing A Connection =====
 To establish a connection, the **//DSN//** style of connection must be used, the first argument of the DSN string being the database type, e.g. to connect to a MySQL database: To establish a connection, the **//DSN//** style of connection must be used, the first argument of the DSN string being the database type, e.g. to connect to a MySQL database:
Line 36: Line 44:
   * It provides true database abstraction, for example, the ADOdb method ''selectLimit()'' provides a true abstraction of the row limiting and offset of all databases. With PDO, you still need to provide the database specific syntax.   * It provides true database abstraction, for example, the ADOdb method ''selectLimit()'' provides a true abstraction of the row limiting and offset of all databases. With PDO, you still need to provide the database specific syntax.
   * In all cases, using native drivers (listed below) provide better functionality, as well as performance, than the equivalent PDO driver. This is true at both the ADOdb and PHP level   * In all cases, using native drivers (listed below) provide better functionality, as well as performance, than the equivalent PDO driver. This is true at both the ADOdb and PHP level
 +
 +
 +===== Setting Construction Parameters =====
 +Certain attributes need to be passed to the [[https://www.php.net/manual/en/pdo.construct.php|PDO Constructor]], for example, changing the error mode. To facilitate this, a PDO specific settable array **'' ADOConnection::pdoOptions ''** is provided:
 +
 +<code php>
 +$db = newAdoConnection('pdo');
 +
 +$db->pdoOptions = [
 +\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION
 +];
 +
 +$dsnString= 'host=localhost;dbname=employee.fdb';
 +$db->connect('firebird:' . $dsnString,"SYSDBA", "password");
 +
 +</code>
 +
 ===== The PDO setAttribute function ===== ===== The PDO setAttribute function =====
-As of ADOdb 5.21the PDO::setAttribute() method can be emulated using [[v5:reference:connection:setconnectionparameter|setConnectionParameter()]].+For parameters that are set after the class is instantiatedThe PDO::setAttribute() method can be populated using [[v5:reference:connection:setconnectionparameter|setConnectionParameter()]]. 
 ===== Individual Driver Status ==== ===== Individual Driver Status ====
 ----------------------- -----------------------
Line 221: Line 247:
  
 ==== pdo_firebird ==== ==== pdo_firebird ====
-<WRAP info> 
-This driver is available from version 5.21 
-</WRAP> 
 <WRAP right box round 300px> <WRAP right box round 300px>
 == Native Driver == == Native Driver ==
v5/database/pdo.txt · Last modified: 2022/02/20 23:47 by mnewnham