@SmokyA

Возможна ли вставка через PDO ассоциативного массива в БД MySql?

Добрый день!
Имеется ассоциативный массив для вставки в БД.
spoiler
Array
(
[0] => Array
(
[order_id] => 45
[order_date] => 2019-12-15 13:54:51
[user_id] => 0
[product_id] => 371
[multiple_id] => 371-pd404-pp47
[product_info] => {"name":"\u0422\u0440\u0443\u0441\u0435\u043b\u044f \u0432 \u043a\u0430\u0440\u0442\u043e\u0448\u043a\u0435","alias":"truselya-v-kartoshke","image":"dafi-130_1570704988.jpg","prDepArr":{"id":404,"p_name":"\u0420\u0430\u0437\u043c\u0435\u0440","pv_name":"37","ch_name":"\u0426\u0432\u0435\u0442","ch_val":"\u0431\u0435\u043b\u044b\u0439","ch_value":"#FFF"}}
[qty] => 2
[price] => 15
[note] => принято
)

[1] => Array
(
[order_id] => 45
[order_date] => 2019-12-15 13:54:51
[user_id] => 0
[product_id] => 366
[multiple_id] => 366-pd400
[product_info] => {"name":"\u041a\u043e\u0441\u0442\u044e\u043c \u043e\u0442 \u041f\u0440\u0430\u0433\u0430\u0444","alias":"kostyum-ot-pragaf","image":"dafi-12_1570018672.jpg","prDepArr":{"id":400,"p_name":"\u0420\u0430\u0437\u043c\u0435\u0440","pv_name":"L","ch_name":"\u0426\u0432\u0435\u0442","ch_val":"\u0431\u0435\u043b\u044b\u0439","ch_value":"#FFF"}}
[qty] => 1
[price] => 125
[note] => принято
)
)


Возможно ли его вставить в одном PDO запросе к БД или нет?
Для одномерного массива использую конструкцию:
spoiler

$sql = 'INSERT INTO '. $table. '(`';
$sql .= implode("`, `", array_keys($newData)).'`)';
$sql .= ' VALUES (:';
$sql .= implode(", :", array_keys($newData)).')';
return $this->pdo->execute($sql, $newData);

Но как преобразовать запрос и возможно ли это сделать для многомерного, сообразить не могу.
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Непонятно, какая проблема выполнить запрос в цикле.

$sql = 'INSERT INTO '. $table. '(`';
$sql .= implode("`, `", array_keys($newData[0])).'`)';
$sql .= ' VALUES (:';
$sql .= implode(", :", array_keys($newData[0])).')';
foreach ($newData as $row)
    $this->pdo->execute($sql, $row);
}

Другое дело что в этом коде инъекция на инъекции и инъекцией погоняет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы