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