я получаю следующее предупреждение уведомление при переходе массива из HTML в PHP:Почему я получаю сообщение об ошибке предупреждение при прохождении массива
Предупреждение: mysqli_real_escape_string() ожидает параметр 2 будет строка, массив приведены в (.../post2.php на линии 68)
Вот где данные фиксируются в файле input2.php:
<td>
<select name="adult_fn_list[]" size="3" multiple="multiple">
<?php
$adult_sql = "SELECT first_name FROM member
WHERE family_fkey = 34
AND member_type = 'Adult'
ORDER BY prim_key";
$res=mysqli_query($link, $adult_sql) or die (mysqli_error($link));
while($row=mysqli_fetch_assoc($res))
echo"<option value=".$row['first_name'].">".$row['first_name']."</option>";
?>
</select>
</td>
Вот строка 68 в код post2.php
$adult_fn_list = mysqli_real_escape_string($link, $_POST[adult_fn_list]);
Я не знаю, почему я получаю предупреждение. Когда я печатаю массив и элементы, они выглядят отлично. Следующий код:
print "The value of the adult_fn_list is: ";
print_r($_POST['adult_fn_list']);
print "<br /><br />The value of each individual element is: <br />";
Foreach ($_POST['adult_fn_list'] as $SelectedFN)
print ($SelectedFN . "<br />");
exit;
Производит следующие результаты:
The value of the adult_fn_list is: Array ([0] => Leonard [1] => Julia)
The value of each individual element is:
Leonard
Julia
Спасибо, Грег. Я изменил строку 68 на: $ adult_fn_list = $ _POST [adult_fn_list]; и он работал нормально. Если этот список исходит из столбца базы данных, должен ли я попытаться найти способ использовать mysqli для удаления данных? – user3138025
Вы должны развернуть значения в отдельные заполнители в своем запросе и связать их. Еще лучше было бы прекратить использование низкоуровневого 'mysqli' и использовать ORM, например [Doctrine] (http://www.doctrine-project.org/), [Propel] (http://propelorm.org/) или [Eloquent] (https://laravel.com/docs/5.3/eloquent), чтобы справиться с этим для вас. Они упрощают управление этими отношениями. – tadman