ID:               37026
 User updated by:  kubis at pawouk dot net
 Reported By:      kubis at pawouk dot net
 Status:           Open
 Bug Type:         PDO related
 Operating System: Windows XP
 PHP Version:      5.1.2
 New Comment:

there is a typo:
sentence "but with version 5.2.1 it returns false"  should be "but with
version 5.1.2 it returns false"


Previous Comments:
------------------------------------------------------------------------

[2006-04-09 19:46:53] kubis at pawouk dot net

Description:
------------
PDOStatement::execute() returns false even if the statement has been
executed correctly.

I have tried it with PDO drivers for postgresql packaged with PHP
version 5.1, it returns correctly true, but with version 5.2.1 it
returns false. I ran into this problem while executing unit tests after
an upgrade.

According to manual page should PDOStatement::execute() return true if
the statement has been executed properly or false if not

Reproduce code:
---------------
try {
        $db = DBShop::getInstance();    //
        $stmt = $db->prepare('SELECT 1 AS testcolumn1, 2 AS testcolumn2');
        $count1 = $stmt->columnCount();
        $res = $stmt->execute();
        $count2 = $stmt->columnCount();
} catch (Exception $e){
        $fail[] = self::errorMsg($e, 'Unable to test columnCount()');
        break;
}
$this->assertTrue($res, 'DBStatement::execute() returned false, should
be true');
$this->assertSame(2, $count2, 'DBStatement::columnCount() did not
return expected value');

Expected result:
----------------
no failure in unit test:
- $res is true
- $count2 is 2

Actual result:
--------------
PHPUnit reports "DBStatement::execute() returned false, should be
true", so $res is not true; but $count2 is integer of value 2, thus the
statement has been executed properly


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=37026&edit=1

Reply via email to