ID:               36788
 Updated by:       [EMAIL PROTECTED]
 Reported By:      bubblenut at gmail dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         PDO related
 Operating System: Linux 2.6.12 (Kubuntu)
 PHP Version:      5.1.2
 New Comment:

It still doesn't work without execute() after prepare().
And after adding this execute() call, it works _just fine_.


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

[2006-03-20 00:29:10] bubblenut at gmail dot com

OK, so change the fetches for fetchAlls an alter the expected and
actual results acordingly (yes I have tested with those methods). The
bug still stands. Prepared statements are not working for this install.

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

[2006-03-19 22:47:39] [EMAIL PROTECTED]

This is what I get with your code (and this is expected):
-------------------
array(2) {
  ["id"]=>
  string(1) "1"
  [0]=>
  string(1) "1"
}

Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while
other unbuffered queries are active.  Consider using
PDOStatement::fetchAll().  Alternatively, if your code is only ever
going to run against mysql, you may enable query buffering by setting
the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.' in /tmp/1.php:11
Stack trace:
#0 /tmp/1.php(11): PDO->prepare('SELECT id FROM ...')
#1 {main}
  thrown in /tmp/1.php on line 11
-------------------

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

[2006-03-19 16:00:20] bubblenut at gmail dot com

Description:
------------
It works fine on my Debian Sarge machine but on my Kubuntu laptop it
fails. 
I have tried it with the follwing releases
PHP 5.1.0 CVS
PHP 5.1.1
PHP 5.1.2
PHP 5.1.2 CVS

Reproduce code:
---------------
<?php
//phpinfo();

$db   = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $db->prepare("SELECT id FROM recipe WHERE id=?");
$stmt->bindValue(1, 1);
$stmt->execute();
$res = $stmt->fetch();
var_dump($res);

$stmt = $db->prepare("SELECT id FROM recipe WHERE id=1");
$res  = $stmt->fetch();
var_dump($res);

foreach($db->query("SELECT id FROM recipe WHERE id=1") as $res) {
    var_dump($res);
}


Expected result:
----------------
array(2) {
  ["id"]=>
  string(1) "1"
  [0]=>
  string(1) "1"
}
array(2) {
  ["id"]=>
  string(1) "1"
  [0]=>
  string(1) "1"
}
array(2) {
  ["id"]=>
  string(1) "1"
  [0]=>
  string(1) "1"
}


Actual result:
--------------
bool(false)
bool(false)
array(2) {
  ["id"]=>
  string(1) "1"
  [0]=>
  string(1) "1"
}



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


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

Reply via email to