Mailinglisten-Archive |
Moin. > Ich hab dein Query etwas ueberarbeitet und wuerde sagen das du das so > einruecken solltest, dann kannst du den Fehler besser lokalisieren weil > die mySQL Fehlermeldung dir die richtige Zeile verraet. Und weiterhin > solltest du alle Uservariablen ueberpruefen bevor du diese an das Query > ranlaesst. Schon mal was von SQL Injection gehoert? ;) > > mysql_query("UPDATE > benutzerdaten > SET > `vorname` = '".$vorname."', [...] > `esr` = '".$esr."', > `spende` = '".$spende."', > `mahng` = '".$mahng."', > `nummer` = '".$nummer."' > WHERE > id = ".addslashes(htmlspecialchars($_GET[edit])).";") > OR die(mysql_error()); Naja, aber bei $_GET['edit'] (man bedenke die Anführungzeichen um Edit!!!) das ganze noch irgendwie kryptisch durch Funktionen zu schicken, ist doch auch nicht so sinnvoll. Die ID ist (wenn man der Bezeichnung ID trauen darf) doch nur eine Zahl, sinnvoller wäre also sowas wie > WHERE > id = ".(int)$_GET['edit'.";") Bei mir werkelt für solche Sachen übrigens eine MySQL-Klasse, die die Funktion sql_update() kennt. Ihr wird der Tabellenname, ein Array mit den Spaltennamen und -inhalten und eine Where-Bedingung sowie ein zweites Array mit ggf. nicht zu verändernden Feldern übergeben. Das Array setzt die Funktion dann zusammen. So sieht die Funktion aus: public function sql_update ( $tabelle, $felder, $where, $noChange = false ) { $query = 'UPDATE ' . $tabelle . ' SET '; $inhalte = array(); if ( !$noChange ) $noChange = array(); foreach ( $felder as $feldname => $feldinhalt ) { $content = $feldname . ' = '; if ( is_string ( $feldinhalt ) ) { $content .= '"' . ( in_array ( $feldname, $noChange ) ? $feldinhalt : mysql_escape_string ( $feldinhalt ) ) . '"'; } else { $content .= $feldinhalt; } $inhalte[] = $content; } $query .= implode ( ', ', $inhalte ); $query .= ' WHERE ' . $where; return $this->sql_query ( $query ); } So wird die ganze Sache von wegen mysql_escape_string überall setzen etwas vereinfacht, wobei sicher auch hier noch nicht zu unterschätzende Sicherheitslücken drinstecken könnten. mfg Nico -- www.buchtips.net - Rezensionen online
php::bar PHP Wiki - Listenarchive