php data object (pdo)
DESCRIPTION
PHP Data Object (PDO). What is PDO?. PDO is a PHP extension to formalise PHP's database connections by creating a uniform interface. This allows developers to create code which is portable across many databases and platforms. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/1.jpg)
PHP Workshop 1
PHP Data Object (PDO)
![Page 2: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/2.jpg)
PHP Workshop 2
What is PDO?
• PDO is a PHP extension to formalise PHP's database connections by creating a
uniform interface. This allows developers to create code which is portable across
many databases and platforms.
• PDO is not just another abstraction layer like PEAR DB or ADOdb.
![Page 3: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/3.jpg)
PHP Workshop 3
Why use PDO? • Portability
• Performance
• Power
• Easy
• Runtime Extensible
![Page 4: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/4.jpg)
PHP Workshop 4
What databases does it support?
• Microsoft SQL Server / Sybase
• Firebird / Interbase
• DB2 / INFORMIX (IBM)
• MySQL
• OCI (Oracle Call Interface)
• ODBC
• PostgreSQL
• SQLite
![Page 5: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/5.jpg)
PHP Workshop 5
DSNs
• In general
drivername:<driver-specific-stuff>
• mysql:host=name;dbname=dbname
• odbc:odbc_dsn
• oci:dbname=dbname;charset=charset
• sqlite:/path/to/db/file
• sqlite::memory:
![Page 6: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/6.jpg)
PHP Workshop 6
Connect to MySQL
![Page 7: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/7.jpg)
PHP Workshop 7
Connect to SQLite (file)
![Page 8: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/8.jpg)
PHP Workshop 8
Connect to SQLite (memory)
![Page 9: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/9.jpg)
PHP Workshop 9
Connect to Oracle
![Page 10: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/10.jpg)
PHP Workshop 10
Connect to ODBC
![Page 11: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/11.jpg)
PHP Workshop 11
Close a Database Connection
![Page 12: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/12.jpg)
PHP Workshop 12
Persistent PDO Connection
• Connection stays alive between requests
$dbh = new PDO($dsn, $user, $pass,array(
PDO_ATTR_PERSISTENT => true)
);
![Page 13: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/13.jpg)
PHP Workshop 13
PDO Query (INSERT)
![Page 14: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/14.jpg)
PHP Workshop 14
PDO Query (UPDATE)
![Page 15: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/15.jpg)
PHP Workshop 15
PDO Query (SELECT)
![Page 16: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/16.jpg)
PHP Workshop 16
Error Handling (1)
![Page 17: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/17.jpg)
PHP Workshop 17
Error Handling (2)
![Page 18: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/18.jpg)
PHP Workshop 18
Error Handling (3)
![Page 19: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/19.jpg)
PHP Workshop 19
Error Handling (4)
![Page 20: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/20.jpg)
PHP Workshop 20
Prepared statements
![Page 21: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/21.jpg)
PHP Workshop 21
Transactions
![Page 22: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/22.jpg)
PHP Workshop 22
Get Last Insert Id
![Page 23: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/23.jpg)
PHP Workshop 23
BenchmarkMySQL SELECT Benchmark Results, 1000 Requests
Library Concurrency Total Time Requests/Sec. Speedup
ADOdb 1 20.90/sec 47.84 -
PDO 1 0.73/sec 1358.62 +2840%
ADOdb 50 10.78/sec 99.23 -
PDO 50 0.54/sec 1850.90 +1865%
ADOdb 100 10.44/sec 95.78 -
PDO 100 0.53/sec 1869.33 +1952%
![Page 24: PHP Data Object (PDO)](https://reader030.vdocuments.net/reader030/viewer/2022012815/56812eed550346895d948937/html5/thumbnails/24.jpg)
PHP Workshop 24
Questions