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

Erro estranho e irritante:Chamada para função indefinida mysql_query()


PHP 7 se livrou de mysql_query() porque é problemático de várias maneiras! A API não incentiva boas práticas, a linha oficial é que não é mantida, e SEM DECLARAÇÕES PREPARADAS!?! Essencialmente, é o maior problema no PHP que incentiva as más práticas que levam à injeção de sql, e essa é uma grande situação ruim.

No entanto, eu trabalho com bases de código legadas, então tenho que lidar com a mesma situação que você em alguns casos. Se você tiver uma base de código pequena, basta atualizar seu método de conexão db. Se você tem uma grande base de código, aqui está o que eu recomendo:
  • Reverta sua versão do php desta base de código para o php 5.6, ela será suportada por um pouco mais de 2016.
  • Dedique algum tempo para atualizar para o PDO (você pode criar um wrapper em torno do PDO para torná-lo menos detalhado e ainda permitir consultas preparadas).
  • Ignore mysqli. Se você levar 5 minutos para atualizar do mysql_*, provavelmente você está fazendo isso errado e deixando-se aberto à injeção de sql. Basta ir para o PDO e começar a usar consultas preparadas para que você possa dormir à noite.
  • Se você ainda quiser usar o php 7 em projetos mais modernos, crie uma instância de contêiner com as bases de código legadas do php 5.6 mais antigas.