lima-city: Webhosting, Domains und Cloud
3 Pluspunkte 0 Minuspunkte

Wenn ich einen MySQL Query in PHP schreibe. Was genau ist die richtige Weise wie ich die Anführungszeichen verwende?

"SELECT * FROM test WHERE name='Hello world'";  

oder  

"SELECT * FROM test WHERE name=\"Hello world\"";  

oder  

'SELECT * FROM test WHERE name="Hello world"';
von  

2 Antworten

2 Pluspunkte 0 Minuspunkte

Die ersten beiden Beispiele erzeugen genau den selben Query.

"SELECT * FROM test WHERE name='Hello world'";  
"SELECT * FROM test WHERE name=\"Hello world\"";

Wenn du Einzelanführungszeichen verwendest wie im 3. Beispiel

'SELECT * FROM test WHERE name="$myVariable"';

wird PHP den Inhalt der Zeichenkette wortwörtlich interpretieren, ohne Variablen oder Escape-Zeichen zu analysieren. In diesem speziellen Beispiel würde es immer noch funktionieren, weil es keine Variablen oder Escape-Zeichen gibt. Aber in komplexeren Szenarien, in denen du Variablen in den SQL-String einfügen möchtest, könnten sich die Verwendung von Doppelanführungszeichen als praktischer erweisen.

von (397 Punkte)  
Sehr gute Erklärung. Trotzdem ein Hinweis auf Prepared Statements. https://www.w3schools.com/php/php_mysql_prepared_statements.asp
2 Pluspunkte 0 Minuspunkte

Prepared Statements sind definitiv die bessere Wahl wenn du mit Benutzereingaben arbeitest. Prepared Statements schützen vor SQL Injection, da sie die Benutzereingaben separat vom SQL Statement behandeln. Die Eingaben werden als Parameter übergeben, nicht direkt in den String eingebaut. Bei unsicheren Methoden wie der direkten Verwendung von Benutzereingaben in SQL-Queries (z. B. SELECT * FROM test WHERE name='$name') könnte ein Angreifer schadhaften Code einschleusen was durch Prepared Statements verhindert wird.

$stmt = $conn->prepare("SELECT * FROM test WHERE name=?");
$stmt->bind_param("s", $name);
$stmt->execute();
von (716 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Beiträge bewerten
  • Inhalte bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft. Unser Ziel: Guter Inhalt. Für alle.

2.3k Fragen

2.8k Antworten

260 Kommentare

12 Nutzer