HomePHP Page 8 - PHP Application Development With ADODB (part 1)
Strange Relationships - PHP
PHP comes with a different API for different database types -whcih usually means a code rewrite every time your databaseadministrator decides to experiment with something new. But fear not -help is at hand, in the unlikely form of ADODB, a powerful databaseabstraction library for PHP applications.
In case you're performing an INSERT query on a table containing an auto-increment primary key, you can obtain the last auto-increment ID generated via ADODB's Insert_ID() method.
<?php
// uncomment this to see plaintext output in your browser
// header("Content-Type: text/plain");
// include the ADODB library
include("adodb.inc.php");
// create an object instance
// configure library for a MySQL connection
$db = NewADOConnection("mysql");
// open connection to database
$db->Connect("localhost", "john", "doe", "db278") or die("Unable to
connect!");
// execute query
$title = $db->qstr("It's Not Me, It's You!");
$author = $db->qstr("J. Luser");
$query = "INSERT INTO library (title, author) VALUES ($title, $author)";
$result = $db->Execute($query) or die("Error in query: $query. " .
$db->ErrorMsg());
// print auto-generated ID
if ($result)
{
echo "Last inserted ID is " . $db->Insert_ID();
}
// clean up
$db->Close();
?>
Note also the qstr() method, which comes in handy when you need to escape
special characters in your query string.
If you're executing a query that affects the table, either by adding, deleting or modifying rows, the Affected_Rows() method can come in handy to tell you the number of rows affected.
<?php
// uncomment this to see plaintext output in your browser
// header("Content-Type: text/plain");
// include the ADODB library
include("adodb.inc.php");
// create an object instance
// configure library for a MySQL connection
$db = NewADOConnection("mysql");
// open connection to database
$db->Connect("localhost", "john", "doe", "db278") or die("Unable to
connect!");
// execute query
$query = "DELETE FROM library WHERE author = 'J. Luser'"; $result =
$db->Execute($query) or die("Error in query: $query. " .
$db->ErrorMsg());
// return number of affected rows
if ($result)
{
echo $db->Affected_Rows() . " rows deleted";
}
// clean up
$db->Close();
?>