2010-11-26 21 views
0

Pourquoi cette syntaxe:Son sur une syntaxe en php lors de l'insertion des données dans la table mysql

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()); 

Je n'ai pas de confusion au sujet mysql_escape_string, la fonction, mais pourquoi est-mysql_escape_string($name), enfermé dans deux points: . mysql_escape_string($name) . il est enfermé dans des guillemets doubles: ". mysql_escape_string($name) ." enfin le tout est enfermé dans une seule citation: '". mysql_escape_string($name) ."' Je suis cette forme la ressource Web suivant: http://net.tutsplus.com/tutorials/php/how-to-implement-email-verification-for-new-members/

... Son programme de vérification de courrier électronique php.

+0

dude! Collez le code dans les tags de code! – benhowdle89

+2

Vous devriez ignorer ce tutoriel et trouver quelque chose qui vous apprend à utiliser 'mysqli' ou' PDO'. – Stephen

+0

Deux conseils hors-sujet: utilisez 'mysqli' ou' PDO' au lieu du connecteur 'mysql'. C'est plus sûr et plus rapide. Ajoutez également un sel à la fonction 'md5 ($ password)' pour plus de sécurité. –

Répondre

0

Le (.) Concatène l'ensemble de la chaîne. voir ici string operators

Si vous répondiez à la requête, cela ressemblerait à ceci.

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

Exactement! Ne pensez pas aux guillemets qui contiennent la fonction 'mysql_escape_string'! Les guillemets simples sont en fait juste des caractères à l'intérieur de la chaîne. Les doubles guillemets délimitent les chaînes et les points collent tout ensemble. Lorsque tout est collé dans une seule chaîne, les guillemets simples entoureront les valeurs, comme le montre cette réponse. –

0

L'opérateur point est la colle pour la concaténation de chaîne. Les guillemets doubles représentent le début et la fin d'une chaîne. "string1". "string2". "string3" équivaut à: "string1string2string3".

1

Le point (.) Est la colle pour la concaténation de chaînes. Il est également utilisé pour les variables de séparation:

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

Les guillemets doubles est la façon dont nous disons que c'est une chaîne:

123 

est considéré comme un entier,

"123" 

est considéré un string. Enfin, la guillemets simples est une partie de la syntaxe mysql qui nécessite que les chaînes soient entourées de '.