|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-11-25 13:40 UTC] chris at x98 dot org
Description:
------------
According to the docs, PDO::exec should return the number of rows affected by the INSERT/DELETE/... statement. In my setup (WinXPSP2/Apache 2.0.55/PHP 5.1.0/mysql 4.1.15-nt), int(0) is returned instead always.
Reproduce code:
---------------
// table test has two columns (id and value)
$db = new PDO('mysql:host=localhost;dbname=test', 'xxxxx', 'xxxxx');
for ($i=1;$i<5;$i++) {
$count = $db->exec("INSERT INTO TEST (id, value) VALUES ($i, 1)");
var_dump($count);
}
$count = $db->exec("DELETE FROM test WHERE id>0");
var_dump($count);
Expected result:
----------------
int(1) int(1) int(1) int(1) int(4)
(assuming table test was empty before)
Actual result:
--------------
int(0) int(0) int(0) int(0) int(0)
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 05:00:01 2025 UTC |
Additional Note: if PDO::Statement with rowCount() function is used instead, the number of affected rows gets returned as expected: for ($i=1;$i<5;$i++) { $stm = $db->prepare("INSERT INTO TEST (id, value) VALUES ($i, 1)"); $stm->execute(); var_dump($stm->rowCount()); } $stm = $db->prepare("DELETE FROM test WHERE id>0"); $stm->execute(); var_dump($stm->rowCount()); returns int(1) int(1) int(1) int(1) int(4)