sql >> Base de Datos >  >> RDS >> Mysql

PreparedStatement:¿Puedo proporcionar el nombre de la columna como parámetro?

Esto no funcionará. La declaración de preparación analiza el SQL, lo envía a la base de datos para su validación y compilación. Si los signos de interrogación pudieran sustituir partes del SQL, perdería todo el punto de las variables vinculadas:velocidad y seguridad. Volvería a introducir la inyección de SQL y las declaraciones deberán volver a compilarse para todos los parámetros.

¿No sería algo como SELECT * FROM table WHERE c1 = ? OR c2 = ? OR c3 = ? ser mejor (por supuesto, dependiendo de los índices y los tamaños de las tablas).