Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PreparedStatement:Posso fornecer o nome da coluna como parâmetro?


Isso não vai funcionar. A instrução prepare analisa o SQL, envia para o banco de dados para validação e compilação. Se os pontos de interrogação pudessem substituir partes do SQL, você perderia todo o sentido das variáveis ​​vinculadas - velocidade e segurança. Você reintroduziria a injeção SQL de volta e as instruções teriam que ser recompiladas para todos os parâmetros.

Não seria algo como SELECT * FROM table WHERE c1 = ? OR c2 = ? OR c3 = ? ser melhor (claro, dependendo dos índices e tamanhos de tabela).