无法通过参考PHP准备语句传递参数问题

时间:2011-02-18 05:12:38

标签: php mysqli prepared-statement

我正在尝试使用预准备语句进行查询以检索某些信息并使用从第一个查询收到的信息进行另一个查询,但我收到错误:

Cannot pass parameter by reference

有办法解决这个问题吗?

这是我的代码:

$DBH = getDBH();
$stmt = $DBH->prepare("SELECT small FROM info WHERE user = ?");
$stmt->bind_param("s",$userid);
$stmt->execute();
$stmt->bind_result($small);
$stmt->fetch();
$stmt->close();
$stmt = $DBH->prepare("INSERT INTO method(small) VALUES(?)");
$stmt->bind_param("s",$small);
$stmt->execute();
$stmt->close();

2 个答案:

答案 0 :(得分:1)

我想我可以通过添加

来实现它
return $small;

之后

$stmt->fetch();

虽然我没有时间用任何实际值测试它,但我没有收到任何错误,但我不确定代码是否停止

return $small;

或者如果一切都继续执行,我可以将其重写为函数并返回值。

答案 1 :(得分:0)

编辑:别介意以下!我在考虑PDO


尝试更改以下行:

$stmt = $DBH->prepare("SELECT small FROM info WHERE user = :s");

$stmt = $DBH->prepare("INSERT INTO method(small) VALUES(:s)");

这是因为你试图绑定一个不存在的参数。如果你想使用问号,你必须找到它,如果我没记错的话。

$stmt->bind_param(0,$userid);