PHP MySQL Вставити кілька записів
Вставити кілька записів в MySQL використовуючи MySQLi та PDO
Кілька SQL інструкцій мають виконуватись за допомогою функції mysqli_multi_query()
.
В наступних прикладах додається три нових записи в таблицю "MyGuests":
Приклад (MySQLi Об’єктно-орієнтований)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Створити підключення
$conn = new mysqli($servername, $username, $password, $dbname);
// Перевірити підключення
if ($conn->connect_error) {
die("Підключення потерпіло невдачу: " . $conn->connect_error);
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')";
if ($conn->multi_query($sql) === TRUE) {
echo "Нові записи успішно створено";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
Зверніть увагу, що кожна SQL інструкція має бути відокремлена крапкою з комою.
Приклад (MySQLi Процедурний)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Створити підключення
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Перевірити підключення
if (!$conn) {
die("Підключення потерпіло невдачу: " . mysqli_connect_error());
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')";
if (mysqli_multi_query($conn, $sql)) {
echo "Нові записи успішно створено";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
PDO шлях є трохи інший:
Приклад (PDO)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// встановити режим PDO помилки для виняткового стану
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// почати транзакцію
$conn->beginTransaction();
// SQL інструкції
$conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')");
$conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com')");
$conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')");
// здійснити транзакцію
$conn->commit();
echo "Нові записи успішно створено";
} catch(PDOException $e) {
// прокрутити назад транзакцію, якщо щось зазнало невдачу
$conn->rollback();
echo "Error: " . $e->getMessage();
}
$conn = null;
?>