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