2010-11-26 6 views
0

Warum diese Syntax ist:Es geht um eine Syntax in PHP, während die Daten in MySQL-Tabelle einfügen

mysql_query("INSERT INTO users (username, password, email, hash) VALUES( 
'". mysql_escape_string($name) ."', 
'". mysql_escape_string(md5($password)) ."', 
'". mysql_escape_string($email) ."', 
'". mysql_escape_string($hash) ."') ") or die(mysql_error()); 

Ich habe keine Verwirrung über mysql_escape_string, Funktion, aber warum ist mysql_escape_string($name), eingeschlossen innerhalb von zwei Punkten: . mysql_escape_string($name) . dann wird es in doppelten Anführungszeichen eingeschlossen: ". mysql_escape_string($name) ." schließlich das ganze in einem einzigen Zitat eingeschlossen: '". mysql_escape_string($name) ."' ich diese Form die folgende Web-Ressource bekam: http://net.tutsplus.com/tutorials/php/how-to-implement-email-verification-for-new-members/

... es ist ein pHP-E-Mail-Verifizierung Programm.

+0

Alter! Kleben Sie den Code in Code-Tags! – benhowdle89

+2

Sie sollten dieses Tutorial ignorieren und etwas finden, das Ihnen beibringt, wie man 'mysqli' oder' PDO' verwendet. – Stephen

+0

Zwei Off-Topic-Tipps: Verwenden Sie 'mysqli' oder' PDO' anstelle des 'mysql'-Connectors. Sie sind sicherer und schneller. Fügen Sie außerdem aus Sicherheitsgründen der Funktion 'md5 ($ password)' ein Salz hinzu. –

Antwort

0

Die (.) Verkettet die ganze Zeichenfolge zusammen. siehe hier string operators

Wenn Sie die Abfrage echoed, würde es in etwa so aussehen.

INSERT INTO users (username, password, email, hash) 
    VALUES ('Jeff', 'hashedpassword', '[email protected]', 'somehash') 
+0

Genau! Denken Sie nicht an die Anführungszeichen, die die Funktion 'mysql_escape_string' enthalten! Die einfachen Anführungszeichen sind eigentlich nur Zeichen innerhalb der Zeichenfolge. Die doppelten Anführungszeichen begrenzen die Strings und die Punkte kleben alles zusammen. Wenn alles zu einer einzigen Zeichenfolge zusammengefügt ist, werden die einfachen Anführungszeichen die Werte einschließen, so wie diese Antwort zeigt. –

0

Der Punktoperator ist der Klebstoff für die Verkettung von Strings. Die doppelten Anführungszeichen stehen für den Anfang und das Ende eines Strings. "Zeichenfolge1". "Zeichenfolge2". "string3" wäre äquivalent zu: "string1string2string3".

1

Der Punkt (.) Ist der Klebstoff für die Verkettung von Strings. Es wird auch zur Trennung von Variablen verwendet:

"First part of a string". $myvar ." second part of a string" 

Die doppelten Anführungszeichen die Art, wie wir sagen, dass ein String ist: ist

123 

eine ganze Zahl betrachtet,

"123" 

gilt als ein Faden.

Und schließlich ist das einfache Anführungszeichen ein Teil der mysql-Syntax, die erfordert, dass die Zeichenketten von 'umgeben sind.