Ako môžem optimalizovať tento kód?
$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")");
}
Pole je iba ukážkové a kľúčovým bodom, ktorý by som rád vedel, je, ako ho môžem vložiť n položiek bez dopytovania n časy?
Vďaka.
odpovede:
4 pre odpoveď č. 1môžete použiť príkazy vloženia mulitvalue
insert into mytable(item) values("item1"),("item2") etc
http://dev.mysql.com/doc/refman/5.1/en/insert.html
1 pre odpoveď č. 2
INSERT INTO `mytable` (`item`) VALUES ("value 1"), ("value 2"), ("value 3")
Formulár pomocou
$t = array("value 1", "value 2", "value 3");
$query = "("";
$query .= implode( ""), ("", $t);
$query .= "")";
echo $query;
výstupy ("value 1"), ("value 2"), ("value 3")
Teraz stačí len vložiť pôvodný dotaz do tohto výstupu.
1 pre odpoveď č. 3
odpoveď používateľa187291 je správne, ale nevytvoril by som len jeden masívny reťazec dotazov.
Po povedzme 10 veľa hodnôt by som spustil vložku. Zdá sa, že menej pravdepodobné, že sa tak nepodarí, potom pošlem prípadný obrovský dotaz do MySQL.
$query = "";
foreach($items as $key => $item) {
if ($key % 10) {
// Reset and insert
}
}