Я пытаюсь вставить несколько строк в MySql только с одной INSERT INTO
используя функцию implode
. Это было найдено отсюда .
Мой пример кода ниже.
$sql[]=array(); $len=count($colour_id); for($i=0;$i<$len;$i++) { $sql[]='('.$colour_id[$i].', '.$_POST['prod_id'].')'; } $l=count($sql); foreach($sql as $temp) { echo $temp; } echo 'insert into product_colour (colour_id, prod_id)values '.implode(',', $sql);
Вышеприведенный код просто инициализирует массив $sql
и цикл foreach
выполняет итерацию по массиву и отображает содержимое массива следующим образом.
Array(1, 1)(2, 1)(3, 1)
но, повторяя последний оператор (оператор insert), он показывает следующую ошибку.
Notice: Array to string conversion in C:\wamp\www\wagafashion\ProductColour.php on line 70 insert into product_colour (colour_id, prod_id)values Array,(1, 1),(2, 1),(3, 1)
(строка № 70 означает последнюю строку в приведенном выше фрагменте кода). Какие изменения следует внести, чтобы я мог вставлять значения, хранящиеся в массиве, в базу данных MySql?