dsf6281 2013-10-08 17:02
浏览 35
已采纳

多个插件无法使用mysql

I'm trying to insert six records in a table, but when the script runs I get the following

error: 'Fatal error: Cannot pass parameter by reference'.

See the code below for the specific line:

$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条回答 默认 最新

  • doujiao4710 2013-10-08 17:09
    关注

    Here is mysqli_stmt::bind_param()'s signature:

    bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

    As you can see, the method accepts all parameters – except the first one – as references.

    You need at least a variable or a function's return value for having a reference. You cannot use a String Literal like 'S'.

    Here is a fix:

    $str = 'S';
    $stmt->bind_param('iis', $idUsuario, $i, $str);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?