Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

download presentation

on

  • 772 views

 

Statistics

Views

Total Views
772
Views on SlideShare
772
Embed Views
0

Actions

Likes
1
Downloads
10
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

download presentation download presentation Presentation Transcript

  • PHP With the New PDO::Informix Presented by: Thomas Beebe Advanced DataTools Corporation [email_address]
  • 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)
  • PEAR
    • "PHP Extension and Application Repository"
    • Package management for PHP
    • Offers standards for creating packages for PHP
    View slide
  • 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.
    View slide
  • 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
  • Demo 1
  • Installing
    • Two ways to install:
      • extensions (php.ini)
      • compiled in (/tmp/php-x.x.x/ext/pdo_informix)
  • 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
  • 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
  •   Demo 2
  • 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();
  • 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();
  • 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);
  • 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
  • Error Handling
    • PHP 5 introduced try/catch which can be a lifesaver.
    • try { sql stuff here...
    • } catch (PDOException $e) {
    • print &quot;Error!: &quot; . $e->getMessage() . &quot;<br/>&quot;;
    • die();
    • }
  • 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
  • Questions? Thomas Beebe Advanced DataTools Corporation [email_address]