execute(); 这不是: $S-6ren">
gpt4 book ai didi

php - 带有准备好的语句的 PDO bindParam() 不起作用

转载 作者:IT老高 更新时间:2023-10-29 00:06:26 25 4
gpt4 key购买 nike

好的,这是问题所在:

这个有效:

$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";
}

?>

最佳答案

使用 bindParam() 变量为 bound as a reference .

一个字符串 can't be passed by reference .

下面的东西可以通过引用传递:

Variables, i.e. foo($a)

New statements, i.e. foo(new foobar())

References returned from functions

尝试使用 bindValue()

$STH->bindValue(':id', '1', PDO::PARAM_STR);

关于php - 带有准备好的语句的 PDO bindParam() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19902078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com