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

时间:2011-10-27 02:26:00

标签: php mysql reference

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

Only variables can be passed by reference in xxx

脚本

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;
  }
}

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

1 个答案:

答案 0 :(得分:5)

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

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