«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно вставлять несколько точек данных из массива в MySQL, используя подготовленные операторы в PHP и PDO?

Как я могу эффективно вставлять несколько точек данных из массива в MySQL, используя подготовленные операторы в PHP и PDO?

Опубликовано 12 ноября 2024 г.
Просматривать:411

How Can I Efficiently Insert Multiple Data Points from an Array into MySQL Using Prepared Statements in PHP & PDO?

Вставка нескольких данных в MySQL с использованием подготовленных операторов с помощью PHP и PDO

В таких сценариях, как онлайн-регистрация, пользователи часто выбирают несколько элементов, которые они хотят приобрести, зарегистрироваться или присоединиться. Эти элементы обычно хранятся в массивах, чтобы облегчить их обработку. Однако вставка данных из массивов в базы данных MySQL с использованием подготовленных операторов PHP и PDO может оказаться сложной задачей. В этой статье рассматриваются методы решения этой проблемы.

Один из подходов — использовать цикл for и выполнять несколько экземпляров оператора SQL, как показано ниже:

for($j = 0; $j < (count($data)-1); $j  ) {
   $stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
   $stmt->execute(array($memberid, $data[$j]));
}

Хотя этот метод относительно прост, он вызывает проблемы с производительностью при работе с большими наборами данных.

Более эффективный подход — динамическое создание одного оператора SQL. Этого можно добиться, перебирая массив и создавая разделенный запятыми список заполнителей и значений в круглых скобках:

$sql = 'INSERT INTO table (memberID, programID) VALUES ';
$insertQuery = array();
$insertData = array();
foreach ($data as $row) {
    $insertQuery[] = '(?, ?)';
    $insertData[] = $memberid;
    $insertData[] = $row;
}

if (!empty($insertQuery)) {
    $sql .= implode(', ', $insertQuery);
    $stmt = $db->prepare($sql);
    $stmt->execute($insertData);
}

Этот метод эффективно объединяет отдельные данные в один запрос для вставки в базу данных. Он обеспечивает эффективную обработку и снижает накладные расходы, что делает его подходящим для сценариев с большими наборами данных или когда оптимизация производительности имеет решающее значение.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3