O design do
mysql_query
função é tal que você precisa ter cuidado para escapar de cada bit de dados que está injetando nele, e se você perder mesmo um, seu aplicativo inteiro pode ser destruído por um ferramenta automática de exploração de vulnerabilidades SQL
. Ambos
mysqli
e marcadores de posição de suporte a PDO que são necessários para garantir que suas consultas estejam protegidas contra erros de injeção de SQL. Chamando mysql_real_escape_string
em tudo não é apenas tedioso, mas propenso a erros, e é aí que surgem os problemas. O
mysql
funções são um produto dos primórdios do PHP e são significativamente mais limitados do que os novos recursos orientados a objetos oferecidos tanto pelo mysqli
como opção, ou DOP por design. Há várias boas razões para usar uma dessas duas novas interfaces, mas a mais importante é que o
mysql_query
A função é simplesmente muito perigosa para ser usada em código de produção. Com ele você estará sempre a um erro de alguns problemas muito sérios. Há uma razão pela qual rasgos de bancos de dados cheios de senhas e números de cartão de crédito continuam aparecendo. Ter um ponto de injeção de SQL óbvio torna quase muito fácil assumir completamente um site.