Kategorie: Allgemein

6.Juni 2017

Alles hat ein Ende….

„Besser PHP programmieren“ hat es bisher in vier Auflagen (und ein paar korrigierten Nachdrucken) gegeben. An dem Buch hängt wirklich viel viel Herzblut und es hat mir viel Spaß gemacht daran zu arbeiten. Inzwischen habe ich mich beruflich aber ein wenig verändert, sodass es keine weiteren Auflagen geben wird (auch wenn es mich doch ein wenig in den Fingern juckt doch noch was zu schreiben). Wenn Du wissen möchtest, was ich jetzt so machen, dann schau mal bei www.moehrke.de oder www.der-glueckliche-programmierer.de vorbei.
Und andere gute PHP-Bücher gibt es natürlich wie immer bei Amazon!

Danke 🙂

Gestern erreichte mich eine E-Mail in der Steven Lüttig mich freundlicherweise darauf hingewiesen hat, dass ich in der dritten Auflage auf Seite 603 einen Fehler eingebaut habe. In der vorletzten Zeile auf der Seite habe ich start_session() geschrieben. Korrekt wäre natürlich session_start(), wie ich es auch im Listing davor korrekt geschrieben habe.
Leider ist das Verwechseln von session_start() und start_session() wirklich mein absoluter „Lieblingsfehler“ bei der Arbeit mit PHP. Irgendwie schreibe ich das ständig falsch herum. Sorry for inconvenience…
Oh, korrekterweise muss man sagen, dass der Fehler nicht nur die dritte Auflage sondern auch die erste und zweite Auflage betrifft. Der ist nämlich schon immer da. Leider habe ich gerade kein Exemplar der ersten Auflage da, aber in der zweiten Auflage ist der Fehler auf Seite 509 im dritten Absatz in der ersten Zeile.
Vielen Dank an Steven Lüttig für den Hinweis auf den Fehler.

Es gibt so Sachen die macht man unwissentlich immer richtig und wundert sich dann plötzlich dass nichts mehr geht wenn man es mal anders macht. Letzte Woche hatte ich wieder so einen Fall. Es handelte sich um ein recht banales SQL-Statement, das allerdings in einer unschönen Fehlermeldung resultierte…

Das eigentliche Statement war so eins wie dieses hier:

SELECT * FROM blog WHERE datum > now();

Zumindest hätte es das sein sollen. Allerdings hatte ich ein Leerzeichen nach dem now getippt, sodass sich ein solches Statement ergab:

SELECT * FROM blog WHERE datum > now ();

Durch das Leerzeichen ist MySQL leider nicht mehr in der Lage das now() zu erkennen. Daher liefert MySQL nur einen Fehler wie diesen zurück:
ERROR 1305 (42000): FUNCTION test.now does not exist

Dieses Beispiel liefert übrigens auf MySQL 5.0 und 5.1 einen Fehler.
Interessant ist allerdings, dass das Statement das ich genutzt habe auf dem Entwicklungsserver funktionierte, das Live-System aber eine Fehlermeldung lieferte. MySQL 5.1 (Entwicklungsserver) scheint da (zumindest bei einigen Funktionen) nicht ganz so streng zu sein wie MySQL 5.0, das auf dem Live-System genutzt wird. Das kann man an diesem Beispiel ganz schön sehen. Was mit MySQL 5.1 funktioniert:

mysql> SELECT version();
+-------------+
| version()   |
+-------------+
| 5.1.16-beta | 
+-------------+
1 ROW IN SET (0.00 sec)
 
mysql> SELECT date_format (now(), '%d.%m.%Y');
+---------------------------------+
| date_format (now(), '%d.%m.%Y') |
+---------------------------------+
| 17.02.2009                      | 
+---------------------------------+
1 ROW IN SET (0.00 sec)

liefert in MySQL 5.0 nur einen Fehler:

mysql> SELECT version();
+--------------------+
| version()          |
+--------------------+
| 5.0.51a-3ubuntu5.4 | 
+--------------------+
1 ROW IN SET (0.00 sec)
 
mysql> SELECT date_format (now(), '%d.%m.%Y');
ERROR 1305 (42000): FUNCTION test.date_format does NOT exist

Also immer schön darauf achten, dass vor dem Klammerpaar kein Leerzeichen steht, dann hat man auch kein Problem 😉

27.Dezember 2008

Nun hat BPP auch ein Blog

Nachdem „Besser PHP programmieren“ nun in der dritten Auflage erschienen ist wollte ich doch auch endlich mal ein Blog zum Buch ins Leben rufen. Hier werden demnächst einige Ergänzungen, Tipps oder Korrekturen  zu finden sein.

Oh, und wenn ich von „BPP“ spreche bzw. schreibe, dann meine ich damit „Besser PHP programmieren“ 😉 

Viel Spaß beim Lesen 😉