【发布时间】:2013-03-29 14:24:24
【问题描述】:
当我在 phpmyadmin 中运行此查询时,它运行良好并返回它应该返回的内容。
当我在php 和PDO 中运行它时,它失败了。有人能告诉我为什么吗?错误消息表明使用了正确的参数。
我在phpmyadmin 中运行的代码。
SELECT `fd1`.`id` , `fd2`.`id` , `fd3`.`id`
FROM `food` AS `fd1` , `food` AS `fd2` , `food` AS `fd3`
WHERE `fd1`.`food` = 'Empty'
AND `fd2`.`food` = 'Carrot'
AND `fd3`.`food` = 'Empty'
我在php中运行的代码
$sql = 'SELECT `fd1`.`id` , `fd2`.`id` , `fd3`.`id`
FROM `food` AS `fd1` , `food` AS `fd2` , `food` AS `fd3`
WHERE `fd1`.`food` = ?
AND `fd2`.`food` = ?
AND `fd3`.`food` = ?';
$stmt = $db->prepare($sql);
$stmt->bindParam(1, $food1, PDO::PARAM_STR);
$stmt->bindParam(2, $food2, PDO::PARAM_STR);
$stmt->bindParam(3, $food3, PDO::PARAM_STR);
$stmt->execute();
if (!$stmt->rowCount())
die("ERROR:FOOD_SEARCH_FAILURE food:$food1, $food2, $food3 rows returned". $stmt->rowCount());
我也尝试过运行它:
$stmt->execute(array($food1, $food2, $food3));
同样的结果
【问题讨论】:
-
您 100000% 确定 $food1 是空的,$food2 是胡萝卜,等等?查询是否成功? (见How to squeeze error message out of PDO?
-
不一定是 Empty、Carrot、Empty,可以是表中存储的值的任意组合。我使用了各种值,在
phpmyadmin中它可以工作,在php它没有 -
执行后使用errorInfo()查看错误
-
PDO 错误信息是什么?
-
数组 ([0] => 00000 [1] => [2] => )
标签: php mysql pdo phpmyadmin