Schreibweise in MySQLi

Richtige Vorgehensweise bei Abfragen

Nun hat man sich die SQL-Befehle angeschaut und durchgearbeitet, aber die Datenbank will die Daten einfach nicht rausrücken und meldet ständig Fehler - was ist denn da schon wieder los? Diese Frage haben sich schon sehr viele Leute gestellt, nachdem sie sich das erste Mal mit einer MySQL-Datenbank und ihrer Tabellen auseinandergesetzt hatten.

Tatsächlich haben sie oft die richtigen Befehle eingegeben, haben die Kriterien richtig formuliert, aber sind trotzdem gescheitert - einfach, weil die Schreibweise falsch war. Und hierbei ist nicht die Schreibweise der Befehle selbst gemeint, sondern die Schreibweise der Kriterien. So wie in PHP und anderen Programmiersprachen gibt es nämlich auch in SQL bestimmte Schreibweisen, die es einzuhalten gilt, anderfalls versteht die Datenbank nicht, was man von ihr will.

Korrekte Schreibweise in PHP und MySQLi

Eine Fehlerquelle ist, dass man Daten falsch anspricht wie etwa Text ohne Anführungszeichen, aber es gibt noch eine ganz andere Falle und zwar die Anführungszeichen selbst. Mit dem Hochkomma ' werden nämlich die Felder angesprochen, etwa beim Speichern von Daten und wenn mitten im Text ein ' steht, dann glaubt das Skript, dass hier der Eintrag endet, es kommt aber danach noch etwas und das Skript kennt sich nicht aus.

Textabfragen
Wer eine Textabfrage durchführt, muss darauf achten - und das ist eine beliebte Fehlerquelle! - dass der Text in Anführungszeichen steht, zum Beispiel

select from tabelle where name = "Maier"
select from tabelle where name = 'Maier'

Fehlerhaft wäre:
select from tabelle where name = Maier

Die ersten beiden Varianten funktionieren. Ob man das einfache (Hochkomma) oder das normale Anführungszeichen wählt, um den Text zu umschließen, ist egal. Nur wenn keine Anführungszeichen verwendet werden, wird die Abfrage nicht verstanden.

Es gibt auch Situationen, in denen man beide Anführungszeichen braucht, um den Text richtig darzustellen.

"Das ist einer von Maier' s Texte"
"Ich habe noch ein 5 1/4'-Laufwerk"

Mit normalen Hausmitteln kann man hier nicht zum Erfolg kommen. Direkt auf phpMyAdmin in der Verwaltung ist diese Angabe kein Problem, von PHP aus aber sehr wohl und die Lösung ist, dass man den entsprechenden Befehl zum Umwandeln der Anführungszeichen nutzt, nämlich mysqli_real_escape_string.

Zahlen
Die Zahlen sind wie gehabt zu verwenden. Gibt es Kommastellen, so ist darauf zu achten, dass das Kommazeichen der Punkt ist. Ein Komma als Beistrich führt zu Probleme. Abfragen mit Zahlen könnten also Werte wie

440040, -55, 23.86

enthalten.

Ansprechen der Feldnamen (Spalten)
Um Abfragen durchführen zu können, braucht man die Feldnamen, es sei denn man will alle Daten ausgeben lassen. Hierbei ist zu beachten, dass es Vernetzungen geben kann. Es kann zu Abfragen kommen, bei denen zwei Tabellen gleichzeitig genützt werden und dann muss MySQL wissen, welches Feld von welcher Tabelle gefragt ist. Das kann zum Beispiel so gelöst werden:

tabelleA.feldx oder tabelleB.feldy

Der Punkt, den man auch von Javascript oder PHP kennt, führt den Namen der Datentabelle und das Datenfeld zusammen, sodass die Abfrage weiß, was gemeint ist und die Datenbank sich an die Arbeit machen kann.

Lesen Sie auch

So richtig aus dem Vollen kann man dann schöpfen, wenn man die Programmiersprache PHP mit dem System der MySQLi-Datenbank verknüpft. Der SQL-Befehlssatz bleibt bestehen, wird aber durch die PHP-Umgebung ummantelt, damit beide kommunizieren können: die Datenbank weiß, was Sache ist und PHP versteht die Antwort. MySQL + PHP bedeutet, dass man direkt vom Skript aus auf die Daten zugreifen kann.

Die Grundvoraussetzung ist einmal das Anlegen einer Datenbank, was auch von PHP aus möglich ist und dann braucht es die Verbindung zur Datenbank.

Damit ist die Grundbasis gelegt und man kann Tabellen anlegen und die Daten speichern. Dabei kann mit mysqli_insert_id die aktuelle laufende Nummer für weitere Aktionen nützlich sein und wichtig ist das Verständnis mit mysqli_close, um nicht mehr gebrauchte Verbindungen zu beenden. Wichtig ist aber auch die richtige Schreibweise beim Arbeiten mit den Daten.

Das Herzstück ist aber die Abfrage. Zweifelsohne braucht man delete und andere Befehle auch, um zu manipulieren, aber mit select kann man verschiedenste Abfragen durchführen wie nach Kriterium, Menge oder auch als Stringabfrage samt Sortierungsangabe.

Diesen Artikel teilen

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel