#45951 [NoF->Opn]: PDO_MSSQL problem if query return no result
ID: 45951
User updated by: grzegorz at heex dot pl
Reported By: grzegorz at heex dot pl
-Status: No Feedback
+Status: Open
Bug Type: PDO related
Operating System: Windows XP Sp3
PHP Version: 5.2.6
New Comment:
I couldn't connect to MSSQL so I've exchanged ntwdblib.dll (v.7.00.839)
to (v.8.00.194).
No result is:
$res1 = array[0] //empty
$res2 = array[
0 = array['[]' => null, 0 => null]
1 = array['[]' => null, 0 => null]
]
( [] = ASCII 0x11 )
and should be:
$res2 = array[
0 = array['value' => 3, 0 => 3]
1 = array['value' => 6, 0 => 6]
]
Previous Comments:
------------------------------------------------------------------------
[2009-05-03 01:00:17] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2009-04-25 15:11:00] jani@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2008-08-29 18:02:13] grzegorz at heex dot pl
Statetment should be:
$sth = $pdo->prepare("SELECT value FROM sometable WHERE id=:parentId");
------------------------------------------------------------------------
[2008-08-29 17:55:31] grzegorz at heex dot pl
Description:
------------
If PDO_MSSQL PDOStatement is called 2 times and the first returned no
result than second one return strange result.
PDO_MYSQL works fine.
Tested on Apache and IIS
Reproduce code:
---------------
$pdo = new PDO("mssql:host=[host];dbname=[base]",[user],[pass]);
$sth = $pdo->prepare("SELECT id FROM sometable WHERE id=:parentId");
$sth->execute(array(':parentId'=>1));
//or
//$sth->bindValue(':parentId',1,PDO::PARAM_INT);
$res1 = $sth->fetchAll();
$sth->closeCursor();
$sth->execute(array(':parentId'=>2));
//or
//$sth->bindValue(':parentId',2,PDO::PARAM_INT);
$res2 = $sth->fetchAll();
$sth->closeCursor();
Expected result:
----------------
$res1 = array[0] //empty
$res2 = array[
0 = array['value' => 3]
1 = array['value' => 6]
]
Actual result:
--------------
$res1 = array[0] //empty
$res2 = array[
0 = array['[]' => null]
1 = array['[]' => null]
]
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45951&edit=1
Thread (7 messages)