0

我正在尝试在表中插入六条记录,但是当脚本运行时,我得到以下信息

错误:'致命错误:无法通过引用传递参数'。

有关特定行,请参见下面的代码:

$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();
}
4

1 回答 1

1

这是mysqli_stmt::bind_param()的签名:

bool mysqli_stmt::bind_param ( 字符串 $types , 混合 &$var1 [, 混合 &$... ] )

如您所见,该方法接受所有参数(第一个参数除外)作为引用。

您至少需要一个变量或函数的返回值才能获得引用。您不能使用'S'.

这是一个修复:

$str = 'S';
$stmt->bind_param('iis', $idUsuario, $i, $str);
于 2013-10-08T17:09:13.383 回答