Вот довольно простой PHP PDO фрагмент кода, который обращается к таблице MySQL с именем «Пользователи» и вставляет строки данных к нему с помощью подготовленного оператора и несколько привязок:одного запроса INSERT для нескольких записей с помощью Подготовленный о
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO Users (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)");
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':email', $email);
// insert a row
$firstname = "John";
$lastname = "Doe";
$email = "[email protected]";
$stmt->execute();
// insert another row
$firstname = "Mary";
$lastname = "Moe";
$email = "[email protected]";
$stmt->execute();
....
Как видно, это связано с неопределенным количеством запросов, поскольку каждая вставка строки принимает собственный execute(). Я пытаюсь уменьшить количество запросов, и моя цель состоит в том, чтобы один цикл создавал один запрос INSERT для всех вставленных записей. Является ли это возможным? Без подготовленного заявления это очень легко, и я могу заставить его работать, но я потерялся с готовым.
Вы хотите создать цикл, но только выполнить один запрос, зачем вам нужен цикл?! – Rizier123
Использовать пакетную вставку http://stackoverflow.com/questions/15069962/php-pdo-insert-batch-multiple-rows-with-placeholders –
@ Rizier123 Цикл не выполняет запрос, просто строит его. – TheLearner