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

 ID:               45951
 Updated by:       [email protected]
 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] [email protected]

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

Reply via email to