无法通过引用传递参数PHP准备好的语句问题

无法通过引用传递参数PHP准备好的语句问题,php,mysqli,prepared-statement,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->execut

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

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();

编辑:不要在意下面的内容!我想到了PDO


尝试更改以下行:

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

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

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

我想我可能是通过添加

return $small;
之后

$stmt->fetch();
虽然我没有时间用任何实际值测试它,但我没有收到任何错误,但我不确定代码是否在

return $small;

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

您可以在第一次
$stmt->close()之后发布
var_dump($small)
的输出吗我转储它,它表明变量中存储了正确的值。它只是转储存储的变量。现在只是“测试”。
return $small;