Infelizmente a migração do mysql para mysqli não é apenas adicionar o ‘i’ no nome da função. Existem diferenças.
Iremos neste breve artigo relatar superficialmente as principais diferenças e o que está igual apenas como uma forma de ajudar aqueles que precisam fazer a migração. Recomendamos o uso do PDO para conexão com banco de dados, mas cada um com sua preferência.
Iremos cobrir somente o modo procedural. Segundo nosso levantamento:
- mysql_affected_rows => mysqli_affected_rows
- mysql_error => mysqli_error
- mysql_errno => mysqli_errno
- mysql_data_seek => mysqli_data_seek
- mysql_fetch_array => mysqli_fetch_array
- mysql_fetch_row => mysqli_fetch_row
- mysql_free_result => mysqli_free_result
- mysql_num_fields => mysqli_num_fields
- mysql_num_rows => mysqli_num_rows
- mysql_select_db => mysqli_select_db
- Argumentos mudaram de ordem
- Nova assinatura da função
- ( $link_connection_db, $database_name)
- $link_connection_db passou a ser obrigatório
- mysql_query => mysqli_query
- Argumentos mudaram de ordem
- Nova assinatura da função
- ( $link_connection_db, $query)
- $link_connection_db passou a ser obrigatório
- mysql_connect => mysqli_connect
- Nova assinatura da função
- Possibilidade de escolher o banco de dados já na hora da conexão
- A antiga assinatura permitia no $host colocar o ip + porta. Agora só pode colocar o endereço do host . Existe um campo para passar a porta.
- Não existe mais a função para conexão permanente. A mesma pode ser obtida colocar “p:” antes da string do argumento $host
Espero que estas breve notas ajudem aqueles que precisem preparar seu código para rodar no PHP7, que já foi lançado.