【发布时间】:2021-08-15 00:46:57
【问题描述】:
好的,这就是问题所在:
这行得通:
$STH = $DBH->prepare("SELECT * FROM juegos WHERE id = 1");
$STH->execute();
这不是:
$STH = $DBH->prepare("SELECT * FROM juegos WHERE id = :id");
$STH->bindParam(':id', '1', PDO::PARAM_STR);
$STH->execute();
我到底做错了什么?它甚至不会抛出异常
谢谢大家!
另外,这是整个代码
<?php
try {
$DBH = new PDO("everything is", "ok", "here");
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$STH = $DBH->prepare("SELECT * FROM juegos WHERE id = :id");
$STH->bindParam(':id', '1', PDO::PARAM_STR);
$STH->execute();
$STH->setFetchMode(PDO::FETCH_ASSOC);
while($row = $STH->fetch()) {
echo $row['nombre']."<br/>";
}
$DBH = null;
echo "Todo salió bien";
} catch (PDOException $e) {
echo "Error";
}
?>
【问题讨论】:
-
我“可以”或“不能”,因为这也不起作用:
$STH = $DBH->prepare("SELECT nombre FROM juegos WHERE id = :id"); $STH->bindParam(':id', 1, PDO::PARAM_INT); $STH->execute(); -
您可以不在表名上使用参数。抱歉,打错字了
-
bindParam的第二个参数必须是引用。你不能直接传递值1。作为替代方案,请尝试bindValue。