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 revision Previous revision
Next revision
Previous revision
v5:database:pdo [2019/01/06 04:22]
mnewnham
v5:database:pdo [2020/01/13 13:09] (current)
dregad Move tag to bottom
Line 1: Line 1:
 ====== PDO ====== ====== PDO ======
 ~~NOTOC~~ ~~NOTOC~~
-<WRAP right box> +
-== See Also == +
-[[http://​wiki.hashphp.org/​PDO_Tutorial_for_MySQL_Developers|Tutorial On PDO Connections]] +
-</​WRAP>​+
 ===== Description ===== ===== Description =====
 This driver supports connections using the standardized [[http://​php.net/​manual/​en/​book.pdo.php|PHP Data Objects]] connection. The ''​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]] connection. The ''​pdo''​ driver itself cannot be used, it must be used with one of the supported drivers:
Line 25: Line 22:
 $user     = '​pdo-user';​ $user     = '​pdo-user';​
 $password = '​pdo-pass';​ $password = '​pdo-pass';​
-$dsnString= '​host=localhost;​dbname=employees;​charset=utf8mb4'​+$dsnString= '​host=localhost;​dbname=employees;​charset=utf8mb4'​;
 $db->​connect('​mysql:'​ . $dsnString,​$user,​$password);​ $db->​connect('​mysql:'​ . $dsnString,​$user,​$password);​
  
Line 34: Line 31:
  
 ===== Preferred Drivers ===== ===== Preferred Drivers =====
-In all cases, using native drivers (listed below) provide better functionality,​ as well as performance,​ than the equivalent PDO driver.+ 
 +Using ADOdb effectively eliminates the need to use the PHP PDO driver as it hides the PHP level command: 
 + 
 +  * 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
 ===== The PDO setAttribute function ===== ===== The PDO setAttribute function =====
 As of ADOdb 5.21, the PDO::​setAttribute() method can be emulated using [[v5:​reference:​connection:​setconnectionparameter|setConnectionParameter()]]. As of ADOdb 5.21, the PDO::​setAttribute() method can be emulated using [[v5:​reference:​connection:​setconnectionparameter|setConnectionParameter()]].
Line 92: Line 93:
 ^Driver Name|pdo| ^Driver Name|pdo|
 ^Data Provider|pdo| ^Data Provider|pdo|
-^Status|Inactive((This driver is not supported by ADOdb project members, but you can contribute to this driver if you have the expertise))|+^Status|Active((This driver is supported by ADOdb project members))|
 ^Windows|Yes| ^Windows|Yes|
-^Unix|No|+^Unix|Yes|
 ^ADOdb V5|Yes| ^ADOdb V5|Yes|
 ^ADOdb V6|Yes| ^ADOdb V6|Yes|
 </​WRAP>​ </​WRAP>​
-The current status of this driver ​is unknown+== Limitations == 
 + 
 + 
 +  * There is no support for the complex binding features available in the Native Driver 
 +  * Some MetaFunctions are unavailable 
 + 
 +---------------------------------------- 
 +=== Sample Connection String === 
 +If you are using the instantclient,​ and there is no tsnames.ora defined, you can define a connection like this 
 +<code php> 
 + 
 +//​Connecting to Oracle Express on 192.168.86.86 
 +$tns = "  
 +(DESCRIPTION = 
 +    (ADDRESS_LIST = 
 +      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.86.86)(PORT = 1521)) 
 +    ) 
 +    (CONNECT_DATA = 
 +      (SERVICE_NAME = XEPDB1) 
 +    ) 
 +  ) 
 +"; 
 +$dsnString="​oci:​dbname=$tns";​ 
 +$db->​connect($dsnString,​$userName,​$password);​ 
 + 
 +</​code>​
 ------------------------------------------ ------------------------------------------
 ==== pdo_pgsql ==== ==== pdo_pgsql ====
Line 173: Line 199:
   * Dates are always returned as strings   * Dates are always returned as strings
   * Most //​**Meta**//​ functions are unsupported   * Most //​**Meta**//​ functions are unsupported
-  * [[v5:​reference:​connection:​setconnectionparameter|setConnectionParameter()]] is not supported, so changing the character set at run-time is not available.+  * [[v5:​reference:​connection:​setconnectionparameter|setConnectionParameter()]] is not supported
   * This driver can also be used on Linux platforms, beginning with PHP Version 7. The program relies on the Microsoft drivers for Linux. For more information,​ see the [[v5:​database:​microsoft_sql_server|mssqlnative driver]]   * This driver can also be used on Linux platforms, beginning with PHP Version 7. The program relies on the Microsoft drivers for Linux. For more information,​ see the [[v5:​database:​microsoft_sql_server|mssqlnative driver]]
 +  * You cannot change the character set in the driver. This is a limitation of the PDO driver, not ADOdb
 +  * No support for parameter binding
  
 ---------------------------------------------------------------------------- ----------------------------------------------------------------------------
Line 224: Line 252:
  
 </​code>​ </​code>​
 +
 +{{tag>​tier2}}
 +
v5/database/pdo.1546744965.txt.gz · Last modified: 2019/01/06 04:22 by mnewnham