/ / PHP MySql Vložte n riadkov naraz? - php, mysql

PHP MySql Vložiť n riadkov naraz? - php, mysql

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ď č. 1

môž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
}



}