只有变量可以通过引用传递 - php

use*_*318 0 php mysql reference

我正在尝试此代码,但我收到此错误:

Only variables can be passed by reference in xxx
Run Code Online (Sandbox Code Playgroud)

脚本

class page {
  function insert($db, $of, $form, &$arr) {

      $i = 0;

      foreach(array_combine($form['value0'], $arr) as $val=>$v){

          $sql->prepare("mysqli query here");
          $sql->bind_param('ssss', $val, $of, $v[$i][0], $v[$i][1]);//error here
          $sql->execute();
          $i++;

      }
      return true;
  }
}
Run Code Online (Sandbox Code Playgroud)

是什么原因,怎么解决?谢谢

Exp*_*lls 5

我假设你正在使用mysqli::bind_param.除第一个之外的所有参数都通过引用传递.这意味着它们必须是变量,而不是字符串,数组元素等.我实际上不确定为什么它需要通过引用来做到这一点,但没关系.你可以很容易地解决它:

$v0 = $v[$i][0];
$v1 = $v[$i][1];
$sql->bind_param('ssss', $val, $of, $v0, $v1);
Run Code Online (Sandbox Code Playgroud)