数组到字符串转换为foreach

时间:2014-12-21 01:07:39

标签: php

我不明白为什么我有这个错误,而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”而不是我期望的值。

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

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

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

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