A resposta curta é não , as funções não são equivalentes.
A boa notícia é que existe uma ferramenta de conversão que o ajudará se você tiver muitas chamadas/projetos para alterar. Isso permitirá que seus scripts funcionem imediatamente.
https://github.com/philip/MySQLConverterTool
É uma versão bifurcada da versão original do Oracle e é kosher.
Dito isso, não é muito difícil atualizar seu código e você pode querer migrar para uma metodologia orientada a objetos de qualquer maneira ...
1) A conexão
Para todos os efeitos, você precisa de uma nova função de conexão que salve a conexão como uma variável PHP, por exemplo;
$mysqli = new mysqli($host, $username, $password, $database);
Observe que salvei a conexão em
$mysqli
. Você pode salvar em $db
ou o que você quiser, mas você deve usar isso em todo o seu código para fazer referência à conexão. Lembre-se de habilitar o relatório de erros para mysqli antes de abrir a conexão;
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
2) A consulta
Nota:Você deve se proteger contra injeção de SQL com instruções preparadas, que estão disponíveis no MySQLi. Dê uma olhada em Como posso evitar injeção de SQL no PHP? , mas vou abordar apenas o básico aqui.
Agora você precisa incluir a conexão como um argumento em sua consulta e outros
mysqli_
funções. No código procedural é o primeiro argumento, no OO você escreve como um método de classe. Processual:
$result = mysqli_query($mysqli, $sql);
OO:
$result = $mysqli->query($sql);
3) Buscar resultado
A busca do resultado é semelhante ao antigo
mysql_
função processual; while ($row = mysqli_fetch_assoc($result))
mas como
$result
agora é um objeto no mysqli, você pode usar a chamada de função de objeto; while ($row = $result->fetch_assoc())
4) Fechar conexão
Assim como antes, você precisa incluir a conexão na função close; como argumento em processo;
mysqli_close($mysqli);
e como o objeto no qual você executa a função em OO;
$mysqli->close();
Eu estaria aqui para sempre se eu passasse por todos eles, mas você entendeu. Dê uma olhada na a documentação Para maiores informações. Não se esqueça de converter qualquer função de fechamento de conexão, liberação de resultado ou função de contagem de erros e linhas que você tenha.
A regra básica é para funções que usam a conexão de banco de dados, você precisa incluí-la na função agora (como o primeiro argumento em procedural ou o objeto que você usa para chamar a função em OO), ou para um conjunto de resultados você pode apenas alterar a função para
mysqli_
ou use o conjunto de resultados como o objeto.