"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Você deve substituir cegamente as funções do MySQL pelo MySQLi_: um conto de advertência?

Você deve substituir cegamente as funções do MySQL pelo MySQLi_: um conto de advertência?

Publicado em 2024-11-07
Navegar:167

Should You Blindly Replace MySQL Functions with MySQLi_: A Cautionary Tale?

Substituindo cegamente funções mysql_ por mysqli_: um conto de advertência

No PHP 5.5, as funções mysql_ foram obsoletas e desde então foram removidas do PHP 7. Isso levanta a questão de saber se é possível simplesmente substituir todas as funções mysql_ por funções mysqli_ sem encontrar quaisquer efeitos adversos.

A resposta é um retumbante não.

Diferenças funcionais

Embora as funções mysql_ e mysqli_ compartilhem uma convenção de nomenclatura semelhante, elas não são equivalentes em funcionalidade. Por exemplo:

  • Ordem dos parâmetros: As funções mysqli_ esperam a conexão como o primeiro argumento, enquanto as funções mysql_ não.
  • Sintaxe: Chamadas no estilo OO em mysqli_ requerem o uso de -> notação (por exemplo, $mysqli->query()), enquanto funções mysql_ usam estilo processual.
  • Manipulação de caracteres especiais: mysqli_ requer que caracteres de escape sejam representados como sequências de escape, ao contrário de mysql_.
  • Relatório de erros: mysqli_ fornece informações de erro mais detalhadas em comparação com mysql_.

Recomendações

Não é aconselhável substituir cegamente as funções mysql_ por mysqli_. Em vez disso, é necessário atualizar cuidadosamente o código para usar as funções mysqli_ corretamente. Isso envolve:

  1. Estabelecer uma nova conexão: Use mysqli_connect() ou mysqli::__construct() para criar uma conexão e armazená-la em uma variável.
  2. Modificando consultas: Atualize as consultas para incluir a conexão como o primeiro argumento (para estilo processual) ou usando ->query() para estilo OO.
  3. Adaptando métodos de busca: mysqli_ usa mysqli_fetch_assoc() e mysqli_result->fetch_assoc() para buscar arrays associados, respectivamente.
  4. Fechando a conexão: Empregue mysqli_close() ou mysqli->__destruct() para fechar a conexão.

Ferramenta de conversão

Para facilitar o processo de migração, há uma ferramenta de conversão disponível: https://github.com/philip/MySQLConverterTool . No entanto, é importante observar que o código convertido ainda requer revisão e testes manuais.

Conclusão

Substituir funções mysql_ por mysqli_ requer algum esforço e atenção aos detalhes. Embora as funções compartilhem os mesmos nomes de função, suas implementações internas são diferentes. Ao atualizar cuidadosamente o código e verificar sua funcionalidade, os desenvolvedores podem garantir uma transição suave para longe de funções obsoletas.

Declaração de lançamento Este artigo foi reimpresso em: 1729149804 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3