好的,这是问题:
以下代码可以正常工作:
$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();
- arielnmzbindParam
的第二个参数必须是一个引用。你不能直接传递值1
。作为替代方案,请尝试使用bindValue
。 - sofl