2009-11-27 5 views
0

Comment puis-je optimiser ce code?PHP MySql Insérer n lignes à la fois?

$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')"); 
} 

Le tableau est juste échantillon et le point clé que je veux savoir est comment puis-je insérer n articles sans interroger n fois?

Merci.

Répondre

1
INSERT INTO `mytable` (`item`) VALUES ('value 1'), ('value 2'), ('value 3') 

formulaire à l'aide

$t = array("value 1", "value 2", "value 3"); 

$query = "('"; 
$query .= implode("'), ('", $t); 
$query .= "')"; 

echo $query; 

Sorties ('value 1'), ('value 2'), ('value 3')

Maintenant tout ce que vous devez faire est de coller votre requête originale dans cette sortie.

1

user187291's answer est correcte, mais je ne construirais pas seulement une chaîne de requête massive. Après disons 10 lots de valeurs, je ferais un insert. Il semblerait moins probable d'échouer de cette façon puis en envoyant une requête énorme possible à MySQL

$query = ''; 

foreach($items as $key => $item) { 

    if ($key % 10) { 
     // Reset and insert 
    } 



} 
Questions connexes