- Aurais-je besoin d'utiliser l'échappement réel dans mes instructions INSERT et SELECT FROM?
pourquoi la syntaxe que j'utilise dans l'exemple suivant ne fonctionne pas (c'est juste l'une des nombreuses façons que j'ai essayé)?mysql_real_escape_string() n'échappe pas à quoi que ce soit
//insert user input for word 1 $sql = "INSERT INTO test (Word1, Word2, Word3, Word4, Word5) VALUES('$Word1','$Word2','$Word3','$Word4','$Word5')", mysql_real_escape_string($Word1), mysql_real_escape_string($Word2), mysql_real_escape_string($Word3), mysql_real_escape_string($Word4), mysql_real_escape_string($Word5); if(!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); }
0
A
Répondre
1
Je recommande fortement que vous évitez échapper tout à fait, et passer directement à prepared statements avec mysqli::prepare, peut-être via PDO. Il est finalement plus simple et plus sûr:
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
$sql =
'INSERT INTO mytable ' .
'(Word1, Word2, Word3, Word4, Word5)' .
'VALUES(?, ?, ?, ?, ?)';
$stmt = $dbh->prepare($sql);
$words = array('word1', 'word2', 'word3', 'word4', 'word5');
$stmt->execute($words);
$words = array('word6', 'word7', 'word8', 'word9', 'word10');
$stmt->execute($words);
4
Il semble que vous essayez d'utiliser sprintf(), pour le faire correctement, vous devez reformater votre code un peu:
$sql = sprintf("INSERT INTO test (Word1, Word2, Word3, Word4, Word5)
VALUES('%s','%s','%s','%s','%s')",
mysql_real_escape_string($Word1),
mysql_real_escape_string($Word2),
mysql_real_escape_string($Word3),
mysql_real_escape_string($Word4),
mysql_real_escape_string($Word5)
);
Questions connexes
- 1. ignore quoi que ce soit entre
- 2. Bibliothèques statiques ou quoi que ce soit
- 3. Ne pas définir quoi que ce soit dans Rails 'collection_select
- 4. Impossible d'obtenir wx.BufferedDC pour dessiner quoi que ce soit
- 5. PHP/lire les fichiers txt (ou quoi que ce soit)
- 6. Insertion de lignes sans sélectionner quoi que ce soit?
- 7. Comment agrandir une UIImage sans lisser quoi que ce soit?
- 8. L'expression régulière avec RedirectMatch fait quoi que ce soit
- 9. onTouchEvent à TabActivity ne réagit pas sur quoi que ce soit
- 10. jQuery utilisant .animate() ne parvient pas à faire quoi que ce soit dans IE8
- 11. sIFR 3 - Je n'arrive pas à afficher quoi que ce soit
- 12. git: Tout à coup ne peut pas pousser, ou cloner, ou quoi que ce soit
- 13. Alors que la boucle, ne semble pas faire quoi que ce soit?
- 14. Est-ce que la fonctionnalité de connexion wordpress fera quoi que ce soit?
- 15. Est-ce que les boutons de l'inspecteur Clojure (inspecter) font quoi que ce soit?
- 16. Bouton Dynamic Link ne pas faire quoi que ce soit sur le clic
- 17. Soudain, je ne peux pas déboguer quoi que ce soit dans VS2010
- 18. QT Creator ne me permet pas de sauver quoi que ce soit
- 19. adaptateur ne se charge pas quoi que ce soit avec SQLite C#
- 20. the_content(); ne pas imprimer quoi que ce soit dans ma page de modèle personnalisé wordpress
- 21. Appeler un getter sans l'affecter à quoi que ce soit (chargement paresseux)
- 22. Comment faire quoi que ce soit que l'utilitaire Windows Installer CleanUp a fait?
- 23. comment enregistrer quoi que ce soit à partir de cartes son?
- 24. Expression régulière correspondant à quoi que ce soit après un mot
- 25. Le programme se bloque dans le débogueur avant que quoi que ce soit se produit
- 26. Microsoft SQL 2005 Simple Trigger Comment: codé un déclencheur qui ne met pas à jour quoi que ce soit?
- 27. Ne peut pas obtenir quoi que ce soit à log4net de sortie lors de l'utilisation de NHibernate
- 28. Impossible de taper quoi que ce soit dans les entrées ou les zones de texte
- 29. Impossible d'obtenir la saisie semi-automatique jQuery pour renvoyer quoi que ce soit. Qu'est-ce que je fais mal?
- 30. HTML PHP JavaScript Quoi que ce soit pour vérifier le compte non-lu de Gmail
quelle est la signification de% s? – Bodhidarma
c'est un spécificateur de type de données pour les chaînes de formatage php, si vous allez à php.net/sprintf, il détaillera les différents prescripteurs de type disponibles – Patrick