多个插件无法使用mysql

时间:2013-10-08 17:02:35

标签: php mysqli

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

  

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

请参阅以下代码了解具体行:

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

1 个答案:

答案 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);