PDO prepared statements sometimes returns empty resultset
| From: | Emil Ivanov | Date: | Mon, 23 Apr 2007 16:51:30 +0000 |
| Subject: | PDO prepared statements sometimes returns empty resultset | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-43471@lists.php.net to get a copy of this message | ||
Hi,
I'm trying to get some data form a MySQL db using PDO and prepared statement, but I noticed that sometimes it fetches an empty result set, but sometimes does what it's supposed to do - returns the whole result set.
The environment is WinXP SP2 Home, Apache 2.2.4, PHP 5.2.1 and MySQL 5.0.27.
Here is some code:
$db = new PDO(
'mysql:host=localhost;dbname=name_of_db',
'user_name',
'password',
array (
PDO::ATTR_PERSISTENT => true) ); $db->query('SET CHARACTER SET utf8'); $stmt = $db->prepare("CALL sp_get_all_currencies(:lang_id)"); $stmt->bindValue(':lang_id', $currenctLanguageId, PDO::PARAM_INT); $stmt->execute(); $currencies = $stmt->fetchAll(); So here, $currencies sometimes is an empty array, and after a refresh of the browser it populates. I also noticed that it works ok with $db->query(), but query doesn't have that fancy param binding (I think). Is there some caching or something... Is this a bug in PHP or I'm not getting the picture right? Regards, Emil Ivanov