Только переменные могут быть переданы по ссылке - php - PullRequest
0 голосов
/ 27 октября 2011

я пытаюсь этот код, но я получаю эту ошибку:

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 Ответ

5 голосов
/ 27 октября 2011

Я полагаю, вы используете mysqli::bind_param.Все аргументы, кроме первого, передаются по ссылке.Это означает, что они должны быть переменными, а не строками, элементами массива и т. Д. Я на самом деле не уверен, , почему это нужно сделать по ссылке, но не берите в голову.Вы можете исправить это довольно легко:

$v0 = $v[$i][0];
$v1 = $v[$i][1];
$sql->bind_param('ssss', $val, $of, $v0, $v1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...