Как я могу оптимизировать этот код?
$items[0] = "Item-0";
$items[1] = "Item-1";
$items[2] = "Item-2";
$items[3] = "Item-3";
...
$items[n] = "Item-n";
foreach($items as $item) {
mysql_query("INSERT INTO mytable (item) VALUES ('$item')");
}
Массив - это просто образец, и ключевой момент, который мне нравится знать, - как я могу вставить n элементов без запроса n раз?
Спасибо.
вы можете использовать инструкции вставки mulitvalue
insert into mytable(item) values('item1'),('item2') etc
user187291 answer является правильным, однако я бы не просто построил одну массивную строку запроса.
После 10 значений, я запустил бы вставку. Казалось бы, с меньшей вероятностью это не сработает, а затем отправит возможный огромный запрос в MySQL
$query = '';
foreach($items as $key => $item) {
if ($key % 10) {
// Reset and insert
}
}
INSERT INTO `mytable` (`item`) VALUES ('value 1'), ('value 2'), ('value 3')
Формируйте его, используя
$t = array("value 1", "value 2", "value 3");
$query = "('";
$query .= implode( "'), ('", $t);
$query .= "')";
echo $query;
Выходы ('value 1'), ('value 2'), ('value 3')
Теперь все, что вам нужно сделать, это вставить исходный запрос в этот вывод.