Чтобы массово вставить массив в базу данных SQL с помощью PHP, у вас есть несколько доступных методов. Вот несколько примеров:
Метод 1: использование подготовленного оператора
// Assuming $array is the array you want to insert
$query = 'INSERT INTO your_table (column1, column2) VALUES (?, ?)';
$stmt = $pdo->prepare($query);
foreach ($array as $item) {
$stmt->execute([$item['value1'], $item['value2']]);
}
Метод 2: использование транзакции
// Assuming $array is the array you want to insert
$query = 'INSERT INTO your_table (column1, column2) VALUES (?, ?)';
$pdo->beginTransaction();
try {
$stmt = $pdo->prepare($query);
foreach ($array as $item) {
$stmt->execute([$item['value1'], $item['value2']]);
}
$pdo->commit();
} catch (Exception $e) {
$pdo->rollBack();
echo "Error: " . $e->getMessage();
}
Метод 3. Использование синтаксиса SQL VALUES
// Assuming $array is the array you want to insert
$values = [];
foreach ($array as $item) {
$values[] = "('" . $item['value1'] . "', '" . $item['value2'] . "')";
}
$query = 'INSERT INTO your_table (column1, column2) VALUES ' . implode(',', $values);
$pdo->exec($query);
Метод 4. Использование синтаксиса SQL INSERT INTO SELECT
// Assuming $array is the array you want to insert
$tempTable = 'temp_table';
$query = 'CREATE TEMPORARY TABLE ' . $tempTable . ' (column1 VARCHAR(255), column2 VARCHAR(255))';
$pdo->exec($query);
$stmt = $pdo->prepare('INSERT INTO ' . $tempTable . ' (column1, column2) VALUES (?, ?)');
foreach ($array as $item) {
$stmt->execute([$item['value1'], $item['value2']]);
}
$query = 'INSERT INTO your_table (column1, column2) SELECT column1, column2 FROM ' . $tempTable;
$pdo->exec($query);
$query = 'DROP TABLE ' . $tempTable;
$pdo->exec($query);
Это всего лишь несколько примеров того, как можно массово вставить массив в базу данных SQL с помощью PHP. Не забудьте адаптировать код в соответствии со структурой и требованиями вашей конкретной базы данных.