1
Wenn man als Programmierer glaubt schon alles durchgemacht zu haben, ist diese Annahme == FALSE. Was kostet es uns oft Nerven, irgendwelche banal scheinenden Fehler zu debuggen... beispielsweise lehrte mich mein letztes Projekt:
Tja, was habe ich gelernt? Wenn debuggen der Vorgang ist, Fehler zu korrigieren, ist programmieren der Vorgang, Fehler einzubauen. Gute Programmierer bauen Fehler derart effizient ein, dass sie kaum bemerkt werden. Je komplizierter der Code, umso banaler der schlimmste Fehler.
Tatsächlich hatte ich eine while-Schleife implementiert, in der der Zähler nicht raufgezählt wurde. Das brachte die seltsamsten Effekte, die Seite hörte in der Mitte auf zu laden, lud dann wieder doch...1) Ein Programm funktioniert manchmal auch mit Endlosschleife, nur nicht so gut.
Der IE mag das nicht sonderlich - und wie aussagekräftig der JS-Debugger dieses Teils ist, wissen wir ja.2) Wenn man mit Javascript document.selection für die Positionierung von Text in einem Textfeld verwendet, sollte man sich möglichst daran erinnern, ob man nicht schon am Anfang des Projekts irgendwo eine Select-Formularkomponente eingefügt hat, welche "selection" heißt...
ich glaub das erklärt sich von selbst.3) MySQL ist anders. Die Syntax UPDATE TABLE SET FIELD= 'text'||FIELD ergibt 0 oder 1.
Aber: MySQL ist gleich. Die Funktion CONCAT gibt es auch in JS, Delphi, Pascal, ...
Zusatz hierzu:
Lege immer ein Backup an, wenn Du ein Update über viele Datensätze machst, oder versuch es zuerst mit einem Datensatz, auch - nein - besonders wenn Du Dir sicher bist.
Auch diese halbe Stunde hätte ich mir sparen können.4) Nein, der Fehler liegt nicht im regulären Ausdruck, da kannst Du noch so viel rumbasteln. Es ist strtolower, das die Umlaute nicht kennt.
Tja, was habe ich gelernt? Wenn debuggen der Vorgang ist, Fehler zu korrigieren, ist programmieren der Vorgang, Fehler einzubauen. Gute Programmierer bauen Fehler derart effizient ein, dass sie kaum bemerkt werden. Je komplizierter der Code, umso banaler der schlimmste Fehler.