Wie ist die syntax in MySQLi-querys mit " und '?

... komplette Frage anzeigen

3 Antworten

In PHP kannst du innerhalb von doppelten Anführungszeichen Variablen nutzen. In der Auswertung wird ihr Wert gesetzt.

$name = "John"; echo "My name is $name"; // Ausgabe: My name is John 

An deiner Stelle würde ich eine richtige Stringkonkatenation durchführen, momentan tust du das gar nicht. Mit den einfachen Anführungszeichen für den Array-Key hatte er momentan sicherlich noch Probleme.

$mailadress = mysqli_query($mysqli, "SELECT email FROM Confirmation WHERE LinkCode='".$_GET['key']."'");


Zusatz: 

Schreibe niemals ungeprüften Input von außen in ein SQL-Query! Damit öffnest du Angreifern extreme Sicherheitslücken (z.B. könnte der URL-Parameter um weitere SQL-Anweisungen erweitert werden, die dann im Skript mit ausgeführt werden). Prüfe überhaupt immer erst Eingaben von außen auf ihren Inhalt, bevor du sie weiterverarbeitest.

Das heißt für dich: Erst den Wert in $_GET filtern / validieren (Sonderzeichen etc. ersetzen), dann im Query nutzen. PHP bietet genügend Hilfsfunktionen an, z.B. einige Filterfunktionen: http://php.net/manual/de/ref.filter.php.>

Antwort bewerten Vielen Dank für Deine Bewertung

Nutze einfach PDO oder besser noch AdoDB. Beides bietet s.g. prepaired Statements, da musst du dir um das escapen oder so keine gedanken mehr machen. Vorallem beim autoexecute. Nutze ich ausschließlich. Hab seit gut 7 jahren keine mysql_ oder mysqli_ funktionen mehr benutzt.

Antwort bewerten Vielen Dank für Deine Bewertung

so sollte es gehen:

$lc = mysqli_real_escape_string( $mysqli, $_GET['key']);
$mailadress = mysqli_query($mysqli, "SELECT email FROM Confirmation WHERE LinkCode='$lc'");

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?