В таких сценариях, как онлайн-регистрация, пользователи часто выбирают несколько элементов, которые они хотят приобрести, зарегистрироваться или присоединиться. Эти элементы обычно хранятся в массивах, чтобы облегчить их обработку. Однако вставка данных из массивов в базы данных 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