1 / 17

PHP With the New PDO::Informix

Presented by: Thomas Beebe Advanced DataTools Corporation tom@advancedatatools.com. PHP With the New PDO::Informix. What is PHP. PHP stands for “PHP: Hypertext Preprocessor” Started in 1995 by Rasmus Lerdorf as perl scripts

taini
Télécharger la présentation

PHP With the New PDO::Informix

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Presented by: Thomas Beebe Advanced DataTools Corporation tom@advancedatatools.com PHP With the New PDO::Informix

  2. What is PHP • PHP stands for “PHP: Hypertext Preprocessor” • Started in 1995 by Rasmus Lerdorf as perl scripts • Andi Gutmans and Zeev Suraski launched PHP3 in 1997 to replace the dated PHP/FI • 1998 – PHP 4 • 2004 – PHP 5 • Provides a very flexible, expendable application development environment, free to use for any purpose. • Large collection of modules and extensions available (mostly free of charge)

  3. PEAR • "PHP Extension and Application Repository" • Package management for PHP • Offers standards for creating packages for PHP

  4. PECL • “PHP Extension Community Library” • Offers a hosting repository of any and all php extensions, as well as hosting and support for development. • pdo drivers are provided through pecl.

  5. Why PDO • Standardized code and connection methods • ODBC can be troublesome • The ifx_ driver is not overly stable and is buggy • Open source development methodology • IBM support pdo_informix driver • Proper error handling

  6. Demo 1

  7. Installing • Two ways to install: • extensions (php.ini) • compiled in (/tmp/php-x.x.x/ext/pdo_informix)

  8. Compiling into PHP • Download the latest pdo_informix driver • Extract it to php_source/ext [it will be PDO_INFORMIX-1.0.x] • Rename it to pdo_informix • cd .. • ./buildconf –force [this will rebuild configure] • ./configure –help | grep informix (make sure it is there) • ./configure –args --with-pdo-informix=$INFORMIXDIR

  9. Connection Paramaters • $dbh->setAttribute($ATTR,$VALUE); • PDO::ATTR_CASE: • PDO::CASE_LOWER • PDO::CASE_UPPER • PDO::CASE_NATURAL • PDO::ATTR_ERRMODE: • PDO::ERRMODE_SILENT • PDO::ERRMODE_WARNING • PDO::ERRMODE_EXCEPTION • PDO::ATTR_STRINGIFY_FETCHES • PDO::ATTR_ORACLE_NULLS

  10.  Demo 2

  11. Binding Paramaters • Safer, faster, often easier to manage. • Insertions use bindParam(); • Selects use bindColumn • Insertions: • $name = “Joe Smith”; • $stmt=$dbh->prepare(“insert into tab_a (name) values (?)”); • $stmt->bindParam(1, $name); • $stmt->execute(); • $name = “John Jones”; • $stmt->bindParam(1, $name); • $stmt->execute();

  12. Named Bind • This tends to be easier to maintain for large inserts/updates. • $stmt = $dbh->prepare(“insert into test (name) values (:name)”); • $name = “Papa Smurf”; • $stmt->bindParam(':name', $name); • $stmt->execute(); • $name = “Bubba Jones”; • $stmt->execute();

  13. Binding on Selects • This is required for reading blobs from the database • $stmt = $db->prepare("select cat_desc from catalog”); • $stmt->execute(); • $stmt->bindColumn(1, $lob, PDO::PARAM_STR); • $stmt->fetch(PDO::FETCH_BOUND);

  14. Binding Paramaters • LOB needs to be specified, the others are optional but can help maintain proper data types • PDO::PARAM_LOB – Data Blobs • PDO::PARAM_STR – Char/Varchar/Text • PDO::PARAM_BOOL – Bool • PDO::PARAM_INT - Integer

  15. Error Handling • PHP 5 introduced try/catch which can be a lifesaver. • try { sql stuff here... • } catch (PDOException $e) { • print "Error!: " . $e->getMessage() . "<br/>"; • die(); • }

  16. Error Handling (cont) • $dbh->errorInfo(); • Returns an array of the last statement executed • 0: Sqlstate Error Code • 1: Driver specific error number • 2: Driver error message • Exception handling variable commands • $e->getMessage() = Error message • $e->getLine() = Line Number • $e->getFile() = File that caused the error • $e->getCode() = Code the caused the error • $e->getTrace() = Array of the error trace

  17. Thomas Beebe Advanced DataTools Corporation tom@advancedatatools.com Questions?

More Related