Problem mit PHP-Variablen in MySQL-Query
Yadgar
- datenbank
1 Vinzenz Mai0 Novi
High!
Folgende Situation:
Einer (auf einem lokalen XAMPP-Server installierten) MySQL-Datenbank sollen per HTML-Eingabeformular Werte übergeben werden:
$query = "INSERT INTO interpret (Vorname, Nachname, Bandname) VALUES ($InterpretVorname, $InterpretNachname, $InterpretBandname)";
$result = mysql_query($query);
Je nachdem, ob ich die Variablennamen in der "VALUES"-Klammer in Hochkommata schreibe oder nicht, bekomme ich die MySQL-Fehlermeldung Nr. 1064 - oder es werden die Namen der Variablen statt ihrer Inhalte in die Datenbanktabelle "interpret" geschrieben!
Wie kann ich erreichen, dass wirklich die Inhalte geschrieben werden?
Bis bald im Khyberspace!
Yadgar
Hallo Yadgar,
$query = "INSERT INTO interpret (Vorname, Nachname, Bandname) VALUES ($InterpretVorname, $InterpretNachname, $InterpretBandname)";
$result = mysql_query($query);
> Je nachdem, ob ich die Variablennamen in der "VALUES"-Klammer in Hochkommata schreibe oder nicht, bekomme ich die MySQL-Fehlermeldung Nr. 1064 - oder es werden die Namen der Variablen statt ihrer Inhalte in die Datenbanktabelle "interpret" geschrieben!
>
> Wie kann ich erreichen, dass wirklich die Inhalte geschrieben werden?
a) die korrekte SQL-Syntax verwenden. Zeichenketten sind in SQL üblicherweise in einfache Anführungszeichen zu setzen.
b) die Variableninhalte [kontextgerecht](http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel) behandeln.
Eine empfehlenswerte Schreibweise findest Du im Abschnitt "[Verhindernde Maßnahmen](http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel#Verhindernde_Ma.C3.9Fnahmen)".
Freundliche Grüße
Vinzenz
Hallo Yadgar,
a) die korrekte SQL-Syntax verwenden. Zeichenketten sind in SQL üblicherweise in einfache Anführungszeichen zu setzen.
b) die Variableninhalte kontextgerecht behandeln.
Eine empfehlenswerte Schreibweise findest Du im Abschnitt "Verhindernde Maßnahmen".
Danke für den Tipp... es ist zwar unglaublich umständlich, aber es funktioniert!
Bis bald im Khyberspace!
Yadgar
Hallo,
Danke für den Tipp... es ist zwar unglaublich umständlich, aber es funktioniert!
[ironie]
Stimmt folgendes wäre doch direkt viel flexibler und einfacher:
mysql_query($_POST['name']);
[/ironie]
Ist so in etwa deine erste "Lösung".
Viele Grüße Novi
Hallo,
Je nachdem, ob ich die Variablennamen in der "VALUES"-Klammer in Hochkommata schreibe oder nicht, bekomme ich die MySQL-Fehlermeldung Nr. 1064 - oder es werden die Namen der Variablen statt ihrer Inhalte in die Datenbanktabelle "interpret" geschrieben!
Du kennst den Unterschied zwischen einfachen und doppelten Anführungszeichen in PHP?
Das die einfachen Anführungszeichen im Query fehlen und du die werde nicht entsprechend kontextgerecht behandelst wurde jja schon gesagt.
Viele Grüße Novi