繁体   English   中英

数组到字符串的转换成foreach

[英]Array to string conversion into a foreach

我不明白为什么在var_dump为“ $ valReponse”返回好的值时出现此错误。

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

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”,而不是我期望的值。

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

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

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

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

要么

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM