2010-08-29 5 views
0

J'utilise PHP et MySQL.transmettre des données au constructeur de requêtes

J'ai eu un champ de texte de formulaire où dans

<input type='text' name ='key' id='key' value = 'property5 = mobile'> 

J'essaie de transmettre cette valeur à générateur de requêtes MySQL juste annexant cette valeur à la clause where, mais cela ne fonctionne pas parce que la partie de la valeur n'a pas de guillemets autour de. Comment puis-je réparer ça?

Répondre

1

Je ne sais pas ce que vous faites ... mais je devine par votre message que vous essayez d'échapper à vos données.

Pour ce faire, utilisez la fonction mysql_real_escape_string(). La documentation peut être trouvée au http://www.php.net/manual/en/function.mysql-real-escape-string.php.

Cela prendra votre chaîne et ajouter tous les échappements appropriés automatiquement.

+0

vous avez eu ma mauvaise question. voir cette variable est comme $ _POST ['clé'] rite .. j'essaie de passer cela à une requête comme ... sélectionnez * de la table où $ _POST ['clé']; mais puisque "mobile" qui est la valeur n'est pas cité. il jette des erreurs. – Hacker

+0

Pradeep, ce que vous faites est extrêmement dangereux. Si vous faites comme ça, il est trivial d'écrire du code qui publie tout ce que je veux dans votre script, et détourner votre base de données. Vous DEVEZ échapper toutes les données provenant de l'utilisateur que vous utilisez dans votre requête. Pensez à nommer votre propriété input5 et à définir la valeur sur mobile. Ensuite, dans votre PHP, faites votre requête comme mysql_query ("SELECT * FROM table WHERE propriété5 = \" ". Mysql_real_escape_string ($ _ POST ['propriété5'])." \ ";") – Brad

+0

donc vous voulez dire que je ne peux pas passer directement paire de valeur clé directement .property5 = mobile. bcos le client veut un générateur de requête dynamique .. – Hacker

Questions connexes