Executing a single SQL statement in PHP (PDO)
To prepare and execute a single SQL statement that accepts no input parameters, use the PDO::exec or PDO::query method. Use the PDO::exec method to execute a statement that returns no result set. Use the PDO::query method to execute a statement that returns one or more result sets.
Before you begin
Procedure
- To execute an SQL statement that returns no result set, call
the PDO::exec method on the PDO connection object,
passing in a string that contains the SQL statement. For example,
a typical use of PDO::exec is to set the default
schema for your application in a common include file or base class.
If the SQL statement succeeds (successfully inserts, modifies, or deletes rows), the PDO::exec method returns an integer value representing the number of rows that were inserted, modified, or deleted.
To determine if the PDO::exec method failed (returned FALSE or 0), use the === operator to strictly test the returned value against FALSE.
- To execute an SQL statement that returns one or more result
sets, call the PDO::query method on the PDO connection
object, passing in a string that contains the SQL statement. For example,
you might want to call this method to execute a static SELECT statement.
If the method call succeeds, it returns a PDOStatement resource that you can use in subsequent method calls.
If the method call fails (returns FALSE), you can use the PDO::errorCode and PDO::errorInfo method to retrieve diagnostic information about the error.
For more information about the PDO API, see http://php.net/manual/en/book.pdo.php.
Example
Example 1: Call the PDO::exec method to set the default schema for your application
$conn = new PDO('ibm:SAMPLE', 'db2inst1', 'ibmdb2');
$result = $conn->exec('SET SCHEMA myapp');
if ($result === FALSE) {
print "Failed to set schema: " . $conn->errorMsg();
}
Example 2: Call the PDO::query method to issue an SQL SELECT statement
$conn = new PDO('ibm:SAMPLE', 'db2inst1', 'ibmdb2');
$result = $conn->query('SELECT firstnme, lastname FROM employee');
if (!$result) {
print "<p>Could not retrieve employee list: " . $conn->errorMsg(). "</p>";
}
while ($row = $result->fetch()) {
print "<p>Name: {$row[0]} {$row[1]}</p>";
}
What to do next
If you called the PDO::query method to create a PDOStatement object, you can begin retrieving rows from the object by calling the PDOStatement::fetch or PDOStatement::fetchAll method.