Bug #45951 [Opn->Csd]: PDO_MSSQL problem if query return no result
Edit report at http://bugs.php.net/bug.php?id=45951&edit=1
ID: 45951
Updated by: ssufficool@php.net
Reported by: grzegorz at heex dot pl
Summary: PDO_MSSQL problem if query return no result
-Status: Open
+Status: Closed
Type: Bug
Package: PDO related
Operating System: Windows XP Sp3
PHP Version: 5.2.6
-Assigned To:
+Assigned To: ssufficool
New Comment:
Tried to reproduce with code in trunk, returns expected results.
$db->query("create table test (id int not null primary key)");
$db->query("insert into test(id) values(2)");
$sth = $db->prepare("SELECT id FROM test WHERE id=:parentId");
$sth->execute(array(':parentId'=>1));
$res1 = $sth->fetchAll();
var_dump($res1);
$sth->execute(array(':parentId'=>2));
$res2 = $sth->fetchAll();
var_dump($res2);
array(0) {
}
array(1) {
[0]=>
array(2) {
["id"]=>
string(1) "2"
[0]=>
string(1) "2"
}
}
Previous Comments:
------------------------------------------------------------------------
[2009-06-11 07:56:54] grzegorz at heex dot pl
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]
]
------------------------------------------------------------------------
[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/bug.php?id=45951&edit=1
Thread (7 messages)