Cita: no entiendo o mas bien no se como llegar a lo que me dices
Veamos si esto te puede servir de guía (encontrado tras 35 segundos de búsquedas en en Google):
Código PHP:
Ver original<?php
array("First", "Content"), //Array for a row of fields array("Second", "Something"), array("Third", "Some Text"), array("Another", "Another Content") );
foreach($multi as $key=>$value) {
$new[] = "'".implode("', '", $value)."'"; }
$query = "(".implode("), (", $new).")"; mysql_query("INSERT INTO duplicate (title, body) VALUES ".$query.";"); echo "Inserted successfully";
?>
O bien esta otra forma (40 segundos después):
Código PHP:
Ver original$insertOrUpdateStatement1 = "INSERT INTO table (col1, col2) VALUES ";
$insertOrUpdateStatement2 = "ON DUPLICATE KEY UPDATE ";
$counter = 0;
foreach($itemList as $key => $item){
$val1 = escape($item->col1); //escape is a function that will make
//the input safe from SQL injection.
//Depends on how are you accessing the DB
$val2 = escape($item->col2);
$queries[] = $insertOrUpdateStatement1.
"('$val1','$val2')".$insertOrUpdateStatement2.
"col1 = '$val1', col2 = '$val2'";
$counter++;
if ($counter % 100 == 0) {
executeQueries($queries);
$counter = 0;
}
}
//executeQueries toma el array y envía una sola query multiple:
function executeQueries($queries) {
$data = "";
foreach ($queries as $query) {
$data.=$query.";\n";
}
executeQuery($data);
}
Yo me quedo con la primera, porque es más simple de código, pero cualquier otra forma puede ser usable.