Mysqli Abfrage im While mit Where im SQL?

...komplette Frage anzeigen

1 Antwort

Der Fehler liegt in der Einbindung der Variable. Eine PHP Variable innerhalb eines MySQL Befehl muss mit ' eingegrenzt sein. Da du den Befehl bereits mit einem ' eröffnet hast kannst du nicht mittendrin mit einem ' eine Variable kennzeichnen. Richtig wäre es also zum Beispiel so:

$sql = "SELECT * from teamspeakserver WHERE USERNAME ='$usrmail'";



Antwort bewerten Vielen Dank für Deine Bewertung
turbotob 06.03.2016, 12:09

Hay danke dir, bekomme jetzt keine Fehlermeldung mehr, leider liest er jetzt jedoch auch nicht mehr den Eintrag aus der Datenbank.

Die Variable $usrmail wird mit jetzt grau im Notepad++ angezeigt, wie der gesamte Text. Ist das so richtig ?

LG Tobias

0
Fisker31 06.03.2016, 12:49
@turbotob

Das ist normal, da Text Highlighting innerhalb des MySQL nicht angewendet wird. Liegt daran das die Variable nun Teil des ganzen Befehls ist.

Warum er allerdings keine Einträge mehr ausliest weiß ich nicht. Hast du geprüft ob die Bezeichnungen z. B. in der Tabelle auch korrekt sind? MySQL ist Case Sensitive, daher muss auf Groß- und Kleinschreibung geachtet werden.

0
turbotob 06.03.2016, 13:04
@Fisker31

ja darauf hab ich geachtet.

Habs jetzt so gemacht und nu funktioniert es

if($_SESSION['memberID'] == 1)

{
$stmt = $db->prepare('SELECT * FROM teamspeakserver');
}
else
{
$stmt = $db->prepare('SELECT * FROM teamspeakserver WHERE USERNAME = ?');
if(!$stmt->bind_param('s', $usrmail)) {
// Fehler...
}
}

if(!$stmt->execute()) {
// Fehler...
}
$result = $stmt->get_result();
if(!$result) {
// Fehler...
}

Ich bedanke mich trotzdem für deine Hilfe.

Sprich also innerhalb eines SQL Befehls mit " ' arbeiten?

Habe bisher immer alles in ' geschrieben

0

Was möchtest Du wissen?