【问题标题】:Array to string conversion into a foreach数组到字符串转换为 foreach
【发布时间】:2015-02-19 13:26:10
【问题描述】:

我不明白为什么我有这个错误,而 var_dump 为“$valReponse”返回了很好的价值。

我使用 foreach 是因为“$reponses”是一个字符串数组。我尝试将数据插入表中,但出现错误“数组转换为 sting”。我哪里做错了?

PHP:

foreach ($reponses as $reponse => $valReponse) {

  var_dump($valReponse);

  if ($insert_reponses = $this->getConnexion()->prepare('INSERT INTO SD_reponses (reponse_val, question_id) VALUES (?, ?)') or die(mysqli_error($this->getConnexion()))) {

    $insert_reponses->bind_param("si", $valReponse, $question_id);
    $insert_reponses->execute();
    $insert_reponses-> close();

  } else {
    return false;
  }
}

return true;

var_dump 结果:

array (size=1)  0 => string 'Answer 1 ' (length=9)<br>
array (size=1)  0 => string 'Answer 2 ' (length=9)

但是,在reponse_val 列(在数据库中)中,插入的是值“Array”而不是我期望的值。

【问题讨论】:

    标签: php


    【解决方案1】:

    您的$valResponse 变量是一个包含一个元素的数组,而不是一个字符串。您需要这样做:

    $insert_reponses->bind_param("si", $valReponse[0], $question_id);
    

    【讨论】:

    • 由于一次不幸的操纵,我今天早上永久删除了我的课程和它吸引人的文件。所以我不得不重写我的 PHP 文件,现在如果我把“$valReponse[0]”xdebug 对我说,“只有变量应该通过引用传递”。而如果我离开“ $valReponse ”,它会起作用。解释?
    【解决方案2】:

    当您不确定第一个数组项的索引(/关联)时,请使用:

      $insert_reponses->bind_param("si", current(array_values($valReponse)), $question_id);
    

      $insert_reponses->bind_param("si", array_shift($valReponse), $question_id);
    

    【讨论】:

      猜你喜欢
      • 2017-01-31
      • 2011-12-17
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      • 2011-06-18
      相关资源
      最近更新 更多