Your SlideShare is downloading. ×
download presentation
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

download presentation

508
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
508
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PHP With the New PDO::Informix Presented by: Thomas Beebe Advanced DataTools Corporation tom@advancedatatools.com
  • 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”;
  • 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. Questions? Thomas Beebe Advanced DataTools Corporation tom@advancedatatools.com