我正在尝试在表中插入六条记录,但是当脚本运行时,我得到以下内容
错误:'致命错误:无法通过引用传递参数'。
请参阅以下代码了解具体行:
$ySQL = "SELECT ID_USUARIO FROM USUARIOS WHERE EMAIL=?";
$stmt = $oConni->prepare($ySQL) or die($oConni->error);
$stmt->bind_param('s', $datos[8]);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($idUsuario);
$stmt->fetch();
$stmt->close();
for($i=1;$i<7;$i++){
$vSQL = "INSERT INTO PERMISOS (ID_USUARIO,ID_ACCION,PERMISOS) VALUES(?,?,?)";
$stmt = $oConni->prepare($vSQL) or die($oConni->error);
// ERROR. The following line throws it:
$stmt->bind_param('iis', $idUsuario, $i, 'S');
$stmt->execute();
$stmt->store_result();
$stmt->close();
}
答案 0 :(得分:1)
这是mysqli_stmt::bind_param()
的签名:
bool mysqli_stmt :: bind_param(string $ types,mixed&amp; $ var1 [,mixed &amp; $ ...])
如您所见,该方法接受所有参数 - 除了第一个参数 - 作为参考。
至少需要一个变量或一个函数的返回值来获得引用。您不能使用{em> String Literal ,例如'S'
。
这是一个修复:
$str = 'S';
$stmt->bind_param('iis', $idUsuario, $i, $str);