Как сделать Insert многомерного массива в бд

sanu0074

Новичок
Например есть массив:

Код:
$output[$i]=array("a"=>1,"b"=>2,"c"=>3);
Здесь можно в цикле делать insert каждого массива на каждой итерации цикла, а можно ли сразу все добавить (массив целяком), чтоб обойтись без прогона циклом?
 

Andkorol

Новичок
INSERT INTO `table` (`field1`, `field2`) VALUES ('value1_1', 'value1_2'), ('value2_1', 'value2_2'), ..., ('valueN_1', 'valueN_2');
Твоя задача – сформировать эти самые ('valueN_1', 'valueN_2') для каждой новой записи в БД, затем объединить их при помощи implode(", ", $values) – и поместить в запрос.
 

С.

Продвинутый новичок
INSERT statements that use VALUES syntax can insert multiple rows. To do this, include multiple lists of column values, each enclosed within parentheses and separated by commas. Example:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
 

sanu0074

Новичок
это для моего массива с вложенным циклом:
PHP:
for($j=0; $j<count($item[$i]["product_property"]); $j++){
                $item[$i]["product_property"][$j]["tmp_id"];
                $item[$i]["product_property"][$j]["name"];
                $item[$i]["product_property"][$j]["nameSite"];
            }
PHP:
$sql = 'INSERT INTO `product_property` (`tmp_id`, `name`, `nameSite`) VALUES ';
    $size = sizeof( $item );
    for( $i = 0; $i < $size; $i++ )
    {
        $data = $array[$i]["product_property"];
        $sql .= "('" . $data["tmp_id"] . "', '" . $data["name"] . "', '" . $data["nameSite"] . "'),";
    }
    $sql = rtrim( $sql, ',' );
всем спасибо)
 

scorpion-ds

Новичок
Недавно сам интересовался, только мне надо было сделать запрос на базе PDO, я не углублялся в поиск (времени не было) и тот код позволял сделать вставку в цикле, но возможно есть правильное решение для PDO без цикла?
 
Сверху