PHP 5.4 & MySQL 5.6 Grundkurs

SQL-Sonderzeichen behandeln

Testen Sie unsere 1984 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Um Probleme beim Abfragen und Einfügen von Daten zu vermeiden, sollten Sie SQL-spezifische Sonderzeichen schützen. Dank der richtigen Methode ist das sehr einfach.

Transkript

Damit es keine Probleme bei Abfragen und Einfügen gibt, müssen Sie SQL-spezifische Sonderzeichen schützen. Dank der richtigen Methode ist es aber nicht sonderlich schwer. Ein Beispiel hier. Wir wollen einen Datensatz einfügen in eine Tabelle. Hier das sind die Parameter, die wir einfügen wollen. Und die Firma heißt jetzt "O'Briens Gartenbedarf". Dann formulieren wir hier unser insert und senden das an die Datenbank und lassen uns dann ausgeben, ob das Ganze geklappt hat. Schauen wir mal dieses Beispiel an. Hier. Und Sie sehen, zack, es gibt eine Fehlermeldung. Und die Fehlermeldung weist uns irgendwie hier schon nicht hin auf Brien, ist ja komisch, der hieß ja nicht Brien, sondern O'Brien, also da gibt es irgendein Problem. Was ist der Grund? Das Problem ist dieses Zeichen hier. Das hat eine Sonderbedeutung in MySQL. Es dient dazu, beispielsweise Strings zu kennzeichnen, und deswegen dürfen Sie das nicht direkt verwenden. Es gibt jetzt eine Reihe von Sonderzeichen. Die sind immer datenbankspezifisch. Und deswegen verwenden Sie am besten eine Funktion, die sich um alles kümmert, dann müssen Sie gar nicht wissen, welche Sonderzeichen es bei bestimmten Datenbanksystemen gibt. Und das hier ist die Funktion, in unserem Fall die uns hier hilft, real_escape_string. Das heißt, Sie müssen alle Daten mit real_escape_string behandeln und dann klappt es. Schauen wir einmal diese verbesserte Version an, ob der insert jetzt wirklich ausgeführt wird. Ja, Anzahl der veränderten Datensätze 1. Es hat geklappt. Sie sehen auch, was hier eigentlich geschieht, wir lassen uns diesen insert ausgeben, es kommt ein Backslash vor dieses einfache Anführungszeichen, dadurch wird das geschützt. Jetzt kann es noch eine Besonderheit geben, aber das betrifft nur Versionen vor PHP 5.4. Also Versionen PHP 5.3 irgendetwas. Dort gab es noch die Einstellung magic_quotes, und wenn diese aktiv ist, also auf on geschaltet, dann werden Formulardaten, wo solche Sonderzeichen, wie zum Beispiel dieses einfache Anführungszeichen vorkommen, automatisch mit solchen Backslashes markiert. Ob diese Angabe aktiv ist, diese magic_quotes, sehen Sie natürlich auch in PHP Info, in dieser Ausgabe, die Sie hier über XAMPP beispielsweise erreichen. Wenn Sie dann hier auf PHP Info gehen und in Versionen vor PHP 5.4 können Sie dann suchen nach magic_quotes und sehen dann, ob die aktiv sind oder nicht, hier sind sie ausgeschaltet. Ab PHP 5.4 gibt es die Einstellung gar nicht mehr da, sind die automatisch deaktiviert. Das heißt, Sie sollten Ihre Skripten auch zukunfts-kompatibel schreiben und nicht damit rechnen, dass magic_quotes funktioniert. Falls Sie aber noch mit älteren PHP-Versionen arbeiten, und diese magic_quotes aktiviert sind, dann hätten Sie plötzlich Backslashes zuviel. Dafür gibt es dann die Methode get_magic_quotes. Damit können Sie auslesen, wie ist denn die aktuelle Konfiguration. Sie sehen die hier beispielsweise manual. Und dann kann man solche Sachen machen, wie hier auch ein Benutzer schreibt. Man kann einfach überprüfen, ist diese Einstellung besetzt, dann lassen Sie den String ganz normal zurückgeben, und sonst, wenn die Einstellung nicht gesetzt ist, dann verwenden Sie das mysqli_real_eascape_string. Also wichtig. real_escape_string ist Ihr Freund. Dank seiner Hilfe gibt es mit den SQL-spezifischen Sonderzeichen keinerlei Probleme. Und Sie sollten das immer anwenden, damit die Sonderzeichen geschützt werden.

PHP 5.4 & MySQL 5.6 Grundkurs

Steigen Sie auch ohne Vorwissen in die Programmierung PHP- & MySQL-basierter Webseiten ein und lernen Sie die Sprachgrundlagen wie Bedingungen, Schleifen, Funktionen usw. kennen.

7 Std. 9 min (86 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!