Implode(), чтобы сделать массив для строки не работает?

Я застрял с этим в течение нескольких часов, пытаясь это исправить, но моих маленьких знаний о php недостаточно, поэтому я прошу вашей помощи.

HTML

        <input type="checkbox" name="type[]" value="type1">Type 1<br>
        <input type="checkbox" name="type[]" value="type2">Type 2<br>
        <input type="checkbox" name="type[]" value="type3">Type 3<br>
        <input type="checkbox" name="type[]" value="type4">Type 4

Проверка PHP (отдельный файл)

if (empty($_POST["type"])) {
    $typeErr = "This field is required";
} else {
    $type = array($_POST["type"]);
}

PHP

/*this is line 90*/ $type_string = implode(',', $type);

$sql = "INSERT INTO `table1`(`type`) VALUES ('$type_string')";

ошибка

 Notice: Array to string conversion in C:\xampp\htdocs\project\example.php on line 90

Он постоянно говорит мне, что я преобразовываю массив в строку, когда использую implode, я понятия не имею, что я делаю неправильно, у меня есть несколько флажков, и выбранные из них переходят в массив, затем я внедряю этот массив в строку, чтобы быть в состоянии отправить его в базу данных MySQL...

Вероятно, это глупая ошибка, но я новичок в php и mysql, так что... кто-нибудь может мне помочь?

Я написал $type_string в $typestring, но проблема остается, уведомление все еще происходит...

2 ответа

Решение
$type = array($_POST["type"]);

теперь содержит массив с 0 => array

Таким образом, implode все еще пытается преобразовать ключ 0 в строку.

Или

$type = (array) $_POST["type"]; 

Что, я думаю, ты имел в виду или

 /*this is line 90*/ $type_string = implode(',', $type[0]);

должен это исправить.

также убедитесь, что вы защищаетесь от внедрения SQL

$POST["type"] уже является массивом. В своем коде вы создаете структуру array(array()). Если вы хотите быть уверены, что вы работаете с использованием массива

if(is_array($_POST["type"])){ $type=$_POST["type"] }

или приведение к массиву с помощью

$type = (array)$_POST["type"];

тогда вы можете свободно использовать Удачи:)

Другие вопросы по тегам