Forum und email


(PHP 5 >= 5.1.0, PECL pdo:0.1-1.0.3)

PDO->exec() — Execute an SQL statement and return the number of affected rows


int exec ( string $statement )

PDO->exec() executes an SQL statement in a single function call, returning the number of rows affected by the statement.

PDO->exec() does not return results from a SELECT statement. For a SELECT statement that you only need to issue once during your program, consider issuing PDO->query(). For a statement that you need to issue multiple times, prepare a PDOStatement object with PDO->prepare() and issue the statement with PDOStatement->execute().



The SQL statement to prepare and execute.


PDO->exec() returns the number of rows that were modified or deleted by the SQL statement you issued. If no rows were affected, PDO->exec() returns 0.


이 함수는 Boolean FALSE를 반환하지만, 0이나 "" 등의 FALSE로 취급할 수 있는 Boolean이 아닌 값을 반환할 수도 있습니다. Booleans 섹션에서 자세한 정보를 얻을 수 있습니다. 이 함수의 반환값을 테스트하기 위해서 === 연산자를 이용하십시오.

The following example incorrectly relies on the return value of PDO->exec(), wherein a statement that affected 0 rows results in a call to die():

->exec() or die($db->errorInfo());


Example#1 Issuing a DELETE statement

Count the number of rows deleted by a DELETE statement with no WHERE clause.

= new PDO('odbc:sample''db2inst1''ibmdb2');

/* Delete all rows from the FRUIT table */
$count $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");

/* Return number of rows that were deleted */
print("Deleted $count rows.\n");

위 예제의 출력:

Deleted 1 rows.