当我在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));
相同的结果
答案 0 :(得分:2)
rowCount()不返回受SELECT语句影响的行数 Manual
答案 1 :(得分:1)
首先,按照PDO tag wiki中描述的方式连接到PDO并在上设置错误报告,以确保您会看到发生任何错误。
在查询中出现故意错误,以测试您是否可以看到它们。
接下来,如果没有错误 - 检查数据,包括数据库和绑定变量(你的代码中没有任何地方你定义它们)