Login   Register  
PHP Classes
elePHPant
Icontem

File: PDO_Example_Script.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Andrea Giammarchi  >  PDO for PHP 4  >  PDO_Example_Script.php  >  Download  
File: PDO_Example_Script.php
Role: Example script
Content type: text/plain
Description: Example File to test PDO for PHP
Class: PDO for PHP 4
PDO database abstraction interface for PHP 4
Author: By
Last change:
Date: 2005-09-14 04:12
Size: 3,529 bytes
 

Contents

Class file image Download
<?php

// Class PDO required for this test page and PDO driver
require('PDO/PDO.class.php');    // required for this test

// database connection parameters
$host_db 'mysql:host=localhost;dbname=test';    // host and database name
$user 'root';                    // database user
$pass '';                    // database password
$sqlite 'sqlite2:test.sqlite';        // slqite filename

// function to test 2 database created with PDO
function PDO_example(&$PDO$first_query) {
    
    
// set permament connection
        
$PDO->setAttribute(PDO_ATTR_PERSISTENTtrue);
    
    
// read PDO informations
        
$informations '<span style="font-size: 7pt;">Server Info: '.$PDO->getAttribute(PDO_ATTR_SERVER_INFO).'<br />';
    
$informations .= 'Server Version: '.$PDO->getAttribute(PDO_ATTR_SERVER_VERSION).'<br />';
    
$informations .= 'Client Version: '.$PDO->getAttribute(PDO_ATTR_CLIENT_VERSION).'<br />';
    
$informations .= $PDO->getAttribute(PDO_ATTR_PERSISTENT) ? 'Permanent Connection: true</span><hr />' 'Pconnection: false</span><hr />';
    
    
// first query, different for this table creation
    
$PDO->exec($first_query);
    
    
// PDOStatement and prepare example with ? values
    
$smtp $PDO->prepare('INSERT INTO mytable VALUES(?, ?)');
    for(
$a 1$a <= 4$a++)
        
$smtp->execute(array($a'Row Number: '.$a));
    
    
// PDOStatement and prepare example with name values
    
$smtp $PDO->prepare('INSERT INTO mytable VALUES(:id, :string)');
    for(
$a 1$a <= 4$a++)
        
$smtp->execute(array(':id'=>($a 5), ':string'=>'Row Number: '.($a 4)));
    
    
// PDOStatement and prepare example with bindParam method and ? values
        
$id 9;
    
$generic_string 'Row Number: '.$id;
    
$smtp $PDO->prepare('INSERT INTO mytable VALUES(?, ?)');
    
$smtp->bindParam(1$id);
    
$smtp->bindParam(2$generic_string);
    
$smtp->execute();
    
    
// PDOStatement and prepare example with bindParam method and name values
        
$id 10;
    
$generic_string 'Row Number: '.$id;
    
$smtp $PDO->prepare('INSERT INTO mytable VALUES(:id, :string)');
    
$smtp->bindParam(':id'$id);
    
$smtp->bindParam(':string'$generic_string);
    
$smtp->execute();
    
    
// PDOStatement while example
        
$output $informations;
        
$smtp $PDO->prepare('SELECT * FROM mytable');
    
$smtp->execute();
    while(
$result $smtp->fetch(PDO_FETCH_OBJ))
        
$output .= "[{$result->id}] &nbsp; [{$result->generic_string}]<br />";
    echo 
$output;
    
    
// PDOStatement rowCount example
    
$smtp $PDO->prepare('UPDATE mytable SET generic_string = ? WHERE id > 6');
    
$smtp->execute(array('something ...'));
    echo 
'Changed '.$smtp->rowCount().' rows<br />';
    
    
// PDOStatement error generation
    
$smtp $PDO->prepare('SELECT * FROM what');
    if(!
$smtp->execute()) {
        
$error = &$smtp->errorInfo();
        echo 
'<strong>Error:</strong> '.$error[2];
    }
    
    
// last query
    
$PDO->exec('DROP TABLE mytable');
    
}

// MYSQL and SQLITE PDO declaration
// for PHP 5.1 users, call _PDO and not PDO if you want to view the differences
$mysql_PDO = new PDO($host_db$user$pass);
$sqlite_PDO = new PDO($sqlite);

// test for each PDO object
echo '<div style="font-family: Helvetica;"><strong>PDO with MYSQL example:</strong><br />';
PDO_example($mysql_PDO'CREATE TABLE mytable(id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, generic_string VARCHAR(100))');
echo 
'<hr />&nbsp; <br /><strong>PDO with SQLITE example:</strong><br />';
PDO_example($sqlite_PDO'CREATE TABLE mytable(id INTEGER(10) PRIMARY KEY, generic_string VARCHAR(100))');
echo 
'</div>';
?>