Mysql
 sql >> Base de données >  >> RDS >> Mysql

PreparedStatement :puis-je fournir le nom de la colonne en tant que paramètre ?

Cela ne fonctionnera pas. L'instruction de préparation analyse le SQL, l'envoie à la base de données pour validation et compilation. Si les points d'interrogation pouvaient remplacer des parties du SQL, vous perdriez tout l'intérêt des variables liées - la vitesse et la sécurité. Vous réintroduirez l'injection SQL et les instructions devront être recompilées pour tous les paramètres.

Est-ce que quelque chose comme SELECT * FROM table WHERE c1 = ? OR c2 = ? OR c3 = ? être mieux (bien sûr en fonction des index et de la taille des tables).