Mailinglisten-Archive |
Hallo Steffen,
Steffen Kother wrote:
> <code>
> $insert = 'INSERT INTO reklamation.verlauf (letzter_bearbeiter, time)
> VALUES ("2", '.time().')';
> $insert['query'] = mysql_query($insert, $link) or $insert['error'] =
> mysql_error();
> </code>
>
> Spricht doch erstmal ncihts dagegen, oder? [...]
ich meine dagegen spricht eine ganze Menge, nämlich das der Code absolut
verwirrend ist.
Deine Variable $insert muss für drei Dinge herhalten.
1. $query
2. $result
3. $error
Das Du bei diesem Mischmasch ins Stolpern kommst, wundert mich nicht. ;-)
Ich würde mich bei solchen Abfragen doch eher an die Muster im Manual
halten. Damit kommt dann auch jeder zurecht, auch Du, wenn Du Dir das
nach Monaten noch mal ansiehst.
Ich mache das so, dass ich die typischen MySQL-Zugriffe in eine separate
Funktionssammlung ausgelagert habe, die ich über eine
Konfigurationsdatei automatisch einbinde. Damit spare ich mir den
meisten Routinecode. Für das Einfügen genügt oft die Übergabe des
Tabellennamens und ein Array mit den Werten.
Hier mal ein Beispiel:
function pb_insert_data($table, $keys, $entries="") {
//Falls Daten als Hash kommen
if ($entries == "") {
$entries = array_values($keys);
$keys = array_keys($keys);
}
$val_str = "";
foreach ($entries as $sg) {
$sg= mysql_escape_string($sg);
if ($val_str != "") {
$val_str .= ', ';
}
$val_str .= sprintf("'%s'", $sg);
}
if (is_array($keys)) {
$key_str = "(" . join(', ',$keys ) . ")";
} else {
$key_str = $keys;
}
$query = "insert into $table $key_str ";
$query .= "values (" . $val_str . ")";
mysql_query($query);
if (mysql_error()) {
systemerror($query . ' ' . mysql_error(), __LINE__);
}
return mysql_affected_rows();
}
Sicherlich lässt sich da auch noch etwas verbessern, bzw. an eigene
Zwecke anpassen. (z.B. könnte die Zeilennummer des Funktionsaufrufs
übergeben werden.)
systemerror ist ebenfalls eine Funktion aus meinem "Framework", die je
nach Umgebung entweder die Fehler direkt ausgibt und das Skript abbricht
oder (produktiv) die Fehler in eine Logdatei schreibt, bzw. als E-Mail
an mich versendet.
Soweit als Anregung. Vielleicht gibt es noch bessere Vorschläge, bzw.
Hinweise auf fertige Funktionssammlungen oder Klassen. Würde mich
interessieren.
Viele Grüße
Peter
--
http://www.media-palette.de/
php::bar PHP Wiki - Listenarchive