Back-End

6 nov, 2015

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

Publicidade

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.

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 evolui bastante e ganhou novas funcionalidades nos últimos 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 bibliOteca 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 DE 2004. Desde então, já era recomendado usar MySQLi em vez de MySQL.

Porém, muitos programadores continuaram usando (e utilizam até hoje) a biblioteca MySQL.

Para mudar esse cenário, a equipe do PHP tomou uma atitude um tanto drástica: removeu 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 deve ser removida do PHP na versão 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 tornado 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 de 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!

[blockquote]E o que devo fazer, Beraldo??!![/blockquote]

Alternativas à extensão MySQL

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

[blockquote]E qual devo escolher, Beraldo?[/blockquote]

A extensã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 biblioteca 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 diversos 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.

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.