|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2008-03-02 15:30 UTC] iliaa@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 22:00:01 2025 UTC |
Description: ------------ PDOStatement::exec() returns int(1) to any successful query. I have tried it with PDO drivers for postgresql packaged with PHP version 5.2.5 on Windows XP, and version 5.1.4 on Linux. The method returns number of affected records on Linux, but returns int(1) to any successful query on Windows. PostgreSQL version is 8.2.6 for Win32. Reproduce code: --------------- <?php /* create table test( tm timestamp ); */ try{ $db = new PDO(PDOSTR,DBUSER,DBPASS); $insert1 = $db->exec('insert into test values( now() )'); $insert2 = $db->exec("insert into test values( now()+interval '1 day' )"); $update = $db->exec("update test set tm=now() + interval '2 day'"); $select = $db->exec('select * from test'); $delete = $db->exec('delete from test'); }catch(PDOException $e){ echo $e->getMessage(); exit; } ?> insert1: <?=$insert1?> insert2: <?=$insert2?> update : <?=$update?> select : <?=$select?> delete : <?=$delete?> Expected result: ---------------- insert1: 1 insert2: 1 update : 2 select : 0 delete : 2 Actual result: -------------- insert1: 1 insert2: 1 update : 1 select : 1 delete : 1