• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

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

  • 723 views

 

Statistics

Views

Total Views
723
Views on SlideShare
723
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
    • 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.
    • 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]