Como resolver o Erro: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO

Os sites hospedados em nossos servidores que usam o PHP 5.5.* podem exibir o erro mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO.

Este erro é exibido quando voce esta usando algum scripts mais antigo ou atual mas que usa o php 5.5 (que ja foi deixado de ser atualizado pelo desenvolvedor) e esta desatualizado porque a função “mysql_connect” foi removida nas versões mais atuais do php.

Para corrigir o problema: Você terá que substituir a função “mysql_connect” pela função “mysqli_connect” na linha do arquivo indicado na mensagem de erro.

o erro esta relacionado diretamente ao conector do banco e scripts desatualizados para este serviço e não com a versão do script seja ele Opencart Wordpress Joomla ou mesmo um script desenvolvido por qualquer programador, ou seja a instrução DEPRECATED  que quer dizer: "Descontinuada" diz que a conexão SQL esta descontinuada no uso não que o script esta obsoleto,velho ou antigo mas precisa ser atualizado, por isto instruímos usar MSQLi para resolver o problema, pois nas versões mais recentes do PHP se usa PDO ou MSQLi ao invés de mysql.

Outra forma de contornar o problema seria mudar a versão do PHP que esta sendo usado em sua hospedagem se sua hospedagem esta rodando o PHP na versão 5.5 pode haver problemas dependendo do template, extensões ou plugins, porem basta apenas mudar para uma versão mais antiga 5.3 ou 5.4 (que ainda disponibilizamos em nossa hospedagem através do seletor de PHP no Cpanel da sua hospedagem) que tudo irá funcionar perfeitamente sem exibir o erro, porem
tenha em mente que voce estará usando um PHP e um conector desscontinuado e que tem serias falhas de segurança e de velocidade e por isso foi descontinuado, nós aconselhamos que voce assim que possivel faça a atualização do seu script para o PHP 7.2 em diante

Você também pode suprimir todas as mensagens de erros que aparecem colocando o seguinte código no seu script logo após a abertura da programação: <?php

****************
<?php
error_reporting(E_ALL ^ E_DEPRECATED);

****************

voce também pode surimir as mensagens de erro desativando a exibição de erros da sua versão do PHP que esta usando em sua hospedagem via CPanel

Acesse o cpanel da sua hospedagem e vá ate o editor de PHP em Software >> MultiPHP INI editor

em seguida esolha se deseja edira as configurações do PHP para o local ou para o dominio 

em seguida desative a opção: display_errors e salve.

Pronto! as mensagens de erros devem desaparecer.

Abaixo segue exemplo de coo resolver o problem ano script

Atualmente, muitas conexões MySQL no PHP usam essa construção:


<?php
$link = mysql_connect('localhost', 'user', 'password');
mysql_select_db($link, 'dbname');

 

 

A escrita correta para resolver ficaria assim:


<?php
$link = mysqli_connect('localhost', 'user', 'password', 'dbname');

 

 

Para executar consultas de banco de dados também é simples e quase idêntico ao antigo:


<?php
// jeito antigo usado no php 5
mysql_query('CREATE TEMPORARY TABLE `table`', $link);
// jeito novo usado em versões mais atuais do PHP
mysqli_query($link, 'CREATE TEMPORARY TABLE `table`');

 

 

Caso você esteja usando a função mysql_result(), você pode encontrar neste siteuma solução: criar uma alternativa mysqli_result () para o MySQLi .

 

Soluções alternativas

 

Além da possibilidade mostrada, há também soluções como usar o MySQLi no estilo orientado a objetos ou até mesmo mudar para o PHP PDO (PHP Data Objects), como mostrado neste Tutorial PDO para Desenvolvedores MySQL .



Solução rápida porem não recomendável

 

Suprima todos os avisos reprovados, incluindo-os do mysql_ *:


<?php
error_reporting(E_ALL ^ E_DEPRECATED);

 

 

Mais informações sobre este problema e outras funções descontinuadas acesse o link: Funções Descontinuadas no PHP 5.5.*




  • mysql_connect, mysqli_connect, php5, php 5.5, mysql_connect(), mysqli, PDO
  • 2 Usuários acharam útil
Esta resposta lhe foi útil?