Sven Rautenberg: mysql_create_db()

Beitrag lesen

Moin!

Ich beschäftige mich seit heute mit Mysql und mache dies anhand eines buches.

Dann solltest du folgenden dringenden Ratschlag IMMER beherzigen:

MySQL liefert dir zu jedem nicht erfolgreichen SQL-Befehl eine Fehlermeldung, die du in PHP mittels der Funktion mysql_error() abfragen und ausgeben kannst.

Wenn du SQL lernst, ist das extrem hilfreich - man macht einfach zu viele dumme Tippfehler, die man ohne Fehlermeldung einfach nicht sofort sieht.

Nun habe ich vor längerer Zeit einen lokalen Apache mit PHP und Mysql installiert.

Noch ein sehr guter Rat: Installiere dir PHPMyAdmin. Damit kriegst du ein Verwaltungsinterface für alle Aspekte der Datenbank: Userverwaltung, neue Datenbanken, bestehende Datenbanken angucken, Tabellen angucken, erstellen, verändern etc. - ohne dass du dich bei diesen Arbeiten noch zusätzlich mit PHP-Programmierung rumschlagen mußt.

PHP ist eine Programmiersprache - SQL ist eine andere Programmiersprache. Beides zusammen zu fügen ist nochmal eine Stufe komplizierter, weil PHP lauffähigen SQL-Code generieren muß. Wenn du diese Stufe zum allerersten Lernen erstmal wegläßt, ist dir sicherlich deutlich mehr geholfen - zumal Dinge wie das Anlegen einer Datenbank bzw. das Anlegen von Tabellen in einer Datenbank etwas ist, was man normalerweise kaum sehr häufig in PHP-Skripten erledigen muß.

Dann will ich eine DB erstellen:

if
(mysql_query($dbname, $link)) {echo "Die Datenbank $dbname wurde erstellt";}
else
{echo "Die Datenbank $dbname konnte nicht erstellt werden";}

Was steht in $dbname drin? Ein gültiger SQL-Befehl zur Erstellung einer Datenbank? Mutmaßlich nicht!

Ich komme zurück zu meinem obigen Ratschlag: Nutze mysql_error(), um Datenbankfehlermeldungen auszugeben:

echo "Die Datenbank $dbname konnte nicht erstellt werden. Fehlermeldung: ".mysql_error();

Nun weis ich nicht was ich machen soll, da ich da noch neu bin in dem Gebiet Datenbanken.

Wenn in $dbname nur der Name der gewünschten Datenbank drinsteht, dann klappt das nicht, weil du der Datenbank mit mysql_query() nur komplette, korrekte SQL-Befehle übermitteln kannst - mit nur dem Datenbanknamen weiß MySQL nicht, was zu tun ist.

Lies in deinem Buch nach, welcher SQL-Befehl eine Datenbank erstellt. Wenn das Buch dafür tatsächlich mysql_create_db() verwendet: Schmeiß das Buch auf den Müll, es ist offensichtlich hoffnungslos veraltet und sollte nicht mehr benutzt werden. Du würdest Dinge lernen, die in PHP schon lange rausgeworfen wurden, oder aus heutiger Sicht als absolut rückständig oder gar als gefährlich betrachtet werden.

- Sven Rautenberg

--
My sssignature, my preciousssss!