2016-10-29 3 views
0

я получаю следующее предупреждение уведомление при переходе массива из 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 

ответ

1

Вы отправляете HTML массив: имя = "adult_fn_list []", а не строку. Поэтому вы не можете передать его mysqli_real_escape_string().

+0

Спасибо, Грег. Я изменил строку 68 на: $ adult_fn_list = $ _POST [adult_fn_list]; и он работал нормально. Если этот список исходит из столбца базы данных, должен ли я попытаться найти способ использовать mysqli для удаления данных? – user3138025

+0

Вы должны развернуть значения в отдельные заполнители в своем запросе и связать их. Еще лучше было бы прекратить использование низкоуровневого 'mysqli' и использовать ORM, например [Doctrine] (http://www.doctrine-project.org/), [Propel] (http://propelorm.org/) или [Eloquent] (https://laravel.com/docs/5.3/eloquent), чтобы справиться с этим для вас. Они упрощают управление этими отношениями. – tadman

Смежные вопросы