Vinzenz Mai: Thema Anführungszeichen :-(((

Beitrag lesen

Hallo Felix,

Ich habe von SQL-Queries keine Ahnung, daher weiß ich auch nicht, ob Deine Abfrage-Syntax das Leerzeichen nach UserName erlaubt.

ich halte Dir zu Gute, dass Du von SQL keine Ahnung hast, aber Du hast hier im Forum bestimmt schon oft genug gelesen, dass man kontextspezifisch behandeln soll. Alle von Dir vorgeschlagenen Formen ignorieren das.

Beim Zusammenbau eines SQL-Statements so wie es der OP vorhat, wären

mysqli_real_escape_string bei Verwendung von mysqli bzw. mysql_real_escape_string bei der Verwendung der veralteten mysql_*-Funktionen dazu zuständig. Besser wäre die Verwendung von mysqli in Verbindung mit Prepared Statements.

Weiterhin ist es in SQL üblich (manche SQL-Dialekte erlauben sogar nichts anderes), Zeichenketten in einfache Anführungszeichen zu setzen.

$query_mail="select UserEmail,UserSignatur from user where UserName ="."$User".";

Weiterhin bietet sich die Verwendung von sprintf() an, um die PHP-Anweisung lesbarer zu gestalten:

$query_mail = sprintf(  
    "[code lang=sql]SELECT UserEmail, UserSignatur FROM user WHERE UserName = '%s'
~~~",  
    mysql(i)\_real\_escape\_string($User));  
[/code]  
Beachte die von mir geänderte Groß- und Kleinschreibung. In SQL ist es üblich, SQL-Schlüsselwörter groß zu schreiben. Es gibt Datenbankmanagementsysteme, die diese Umwandlung als einen der ersten Schritte beim Parsen eines Statements vornehmen.  
  
  
Freundliche Grüße  
  
Vinzenz