MySQL obsoleto? Entenda Exatamente o Que Fazer

MySQL obsoleto: não utilize funções mysql_*

 

Você viu esta mensagem de erro?

PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

Aí você me pergunta…

MySQL obsoleto? Então não posso mais usá-lo?

Não é bem assim. Estamos falando apenas da extensão mysql. E eu vou te mostrar aqui exatamente o que fazer para resolver esse problema e evitar que seus scripts parem de funcionar com o PHP 7 (previsto para ser lançado até meados de dezembro de 2015).

O SGBD MySQL é um dos mais utilizados com a linguagem PHP. Grande parte dos sistemas populares feitos em PHP utilizam (ou pelo menos suportam) o SGBD MySQL.

Assim como o PHP, o MySQL também evolui bastante e ganhou novas funcionalidades nos úlitmos anos. Isso fez com que a equipe do PHP desenvolvesse uma nova biblioteca para trabalhar com essas novidades de forma mais efetiva. Essa nova biblioteca foi chamada de MySQLi (o “i” do final refere-se a “improved“, que significa “melhorada”).

MySQL obsoleto Vs Extensão MySQL Obsoleta

O MySQL é o SGBD em si. Não é dele exatamente que estou falando. Estou falando da extensão mysql (ou biblioteca mysql) do PHP.

A bibliteca MySQL, que conta com funções como mysql_connect, mysql_query e semelhantes, não permite utilizar recursos novos do MySQL, como triggers, stored procedures e outros. Esses recursos só estão disponíveis com o uso da biblioteca MySQLi.

A extensão MySQLi existe desde o PHP 5.0, que foi lançado em 13 de julho 2004. Desde então, já era recomendado usar MySQLi em vez de MySQL.

Porém muitos programadores continuaram usando, ainda usam até hoje, a biblioteca MySQL.

Para mudar esse cenário, a equipe do PHP tomou uma atitude um tanto drástica: removeram a biblioteca MySQL do PHP 7.

Mas calma! Não entre em desespero!

Extensão MySQL obsoleta

A partir do PHP 5.5, a biblioteca MySQL é considerada obsoleta, mas ainda funciona. Porém, é recomendado não utilizá-la mais, pois já foi removida do PHP 7, que deve ser lançada até o final de 2015.

Isso Foi Uma Atitude Drástica?

Muitos acham um absurdo a equipe do PHP ter ternado a biblioteca MySQL obsoleta no PHP 5.5. Mas vamos analisar melhor.

Como eu disse antes, a extensão MySQLi foi lançada junto com o PHP 5.0, em 13 de julho 2004. Desde então, a comunidade do PHP sugere utilizar essa biblioteca em vez do MySQL.

Poucos programadores aderiram à ideia.

Conclusão da equipe do PHP: vamos forçá-los a migrar para o MySQLi.

A versão 5.5.0 foi lançada em 20 de junho 2013, ou seja, NOVE ANOS após a publicação do PHP 5.0 e as recomendações do uso do MySQLi.

Estamos em 2015 (quando escrevo este artigo) e ainda tem gente usando MySQL.

Já se passaram ONZE ANOS! Por todo esse tempo a comunidade do PHP sugere usar MySQLi.

Ou seja, não acho nada drástica a iniciativa de tornar o MySQL obsoleto. Afinal, muitos só se mexem quando “a água bate na bunda”.

Então deixe a preguiça de lado e migre suas aplicações para MySQLi ou PDO agora mesmo!

E o que devo fazer, Beraldo??!!

Alternativas à extensão MySQL

  1. Usar a extensão MySQLi em vez da MySQL
  2. Usar a extensão PDO (PHP Data Object)

E qual devo escolher, Beraldo?

A extendão MySQLi lhe dará tudo o que você já tem hoje com a extensão MySQL. Além disso, você terá acesso aos novos recursos do MySQL. Também estará usando uma bilioteca mais recente.

Mas a extensão PDO tem uma grande vantagem.

PDO é uma camada de abstração de banco de dados. O nome assusta, mas é simples: ela é um interface genérica para diveroso SGBDs. Ou seja, seu código escrito com PDO funcionará com MySQL, PostgreSQL, SQLite e diversos outros SGBDs.

A vantagem disso é que, se um dia precisar trocar o SGBD, terá de fazer pouquíssimas alterações no código.

Nunca se sabe o dia de amanhã. Talvez sua aplicação cresça muito e precise trocar o SGBD. Então, se o PHP já nos dá esse recurso de brinde, vale a pena utilizá-lo! :)

Veja aqui um tutorial sobre como usar PDO com MySQL.

Mas eu sei que muitos iniciantes têm dificuldade com Orientação a Objetos e por isso acham PDO difícil. Por isso eu criei este artigo, onde mostro como usar MySQLi sem precisar usar Orientação a Objetos.

Outras Novidades do PHP 7

O PHP 7 deve ser lançado oficialmente até o final de 2015. Mas a versão RC está disponível desde o final de agosto.

Então já podemos ter uma ideia do que está por vir.

Além do fim do MySQL, há diversas outras ótimas novidades, como sua incrível velocidade, sendo até NOVE vezes mais rápido que o PHP 5.6.

Para aprender todas as novidades, inscreva-se no meu curso 100% GRATUITO sobre o PHP 7.

CLIQUE AQUI Para Se Inscrever No Meu Curso Gratuito Sobre o PHP 7

  • SparK

    Velho… MySQL com php continua funcionando, são as funções da lib que são depreciadas!
    O título do post é só pra dar infarto no veio, né? Tou sabendo.

    • Olá, SparK

      O título é: MySQL obsoleto: não utilize ***funções mysql_****

      Deixo claro que estou falando sobre funções mysql_*. E explico tudo no post. Caso tenha ficado alguma dúvida, pode perguntar.

      Abraço
      Beraldo

  • tiominga

    Muito bem explicado, parabéns