Einzelnen Beitrag anzeigen
  #2  
Alt 16.06.2010, 18:23:21
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: mass insert - prepared vs batch vs single

die ergebnisse sind nicht überraschend und entsprechen dem, was man als belesener entwickler erwarten würde. dennoch ist es schön, wieder und wieder gepredigte DOs + DONTs mit ein paar zahlen untermauert zu sehen .-)

dem entsprechend sollte man sql-statements zusammenklöppeln, bevor sie an die db geschickt werden:

PHP-Code:
$set null;

foreach( 
$data as $col => $val )
{    
    
$set .= ( $set != null ) ? ", " null;

    
$set .= $col " = " "'" sprintf '%s' mysql_real_escape_string$val ) ) . "'" ;
}

$que =    

"    
    UPDATE table
    SET $set
    [ WHERE ... ]
"

prinzipiell meide ich sql-abfragen in schleifen wie der teufel das weihwasser. dennoch lassen sie sich nicht immer ohne weiteres umgehen bspw. bei einem UPDATE mehrerer zeilen mit unterschiedlichen werten. mit seitenblick auf den aufwand und die anzahl der betreffenden zeilen kann man natürlich tricksen:

a) mit temporären tabellen: artikel
b) mit case-anweisung: artikel

cx
Mit Zitat antworten