|
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-2026 The PHP GroupAll rights reserved. |
Last updated: Thu Jan 29 03:00:01 2026 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