User Tools

Site Tools


php:php-mysqli

This is an old revision of the document!


PHP mysqli migration

The mysql php extension has been deprecated after php5.4. The following functions are affected and should be replaced with the mysqli extension. Note differences in parameter order:

mysql_affected_rows -> mysqli_affected_rows($link)
mysql_close -> mysqli_close($link)
mysql_data_seek -> mysqli_data_seek( $result, $offset)
mysql_errno -> mysqli_errno( $link)
mysql_error -> mysqli_error( $link)
mysql_fetch_array -> mysqli_fetch_array( $result, $type)
mysql_fetch_assoc -> mysqli_fetch_assoc( $result)
mysql_fetch_lengths -> mysqli_fetch_lengths( $result )
mysql_fetch_object -> mysqli_fetch_object( $result, $class, $params)
mysql_fetch_row -> mysqli_fetch_row( $result)
mysql_field_seek -> mysqli_field_seek( $result, $number)
mysql_free_result -> mysqli_free_result(result)
mysql_get_client_info -> mysqli_get_client_info( $link)
mysql_get_host_info -> mysqli_get_host_info( $link)
mysql_get_proto_info -> mysqli_get_proto_info( $link)
mysql_get_server_info -> mysqli_get_server_info( $link)
mysql_info -> mysqli_info( $link)
mysql_insert_id -> mysqli_insert_id( $link)
mysql_num_rows ->  mysqli_num_rows( $result)
mysql_ping -> mysqli_ping( $link)
mysql_query -> mysqli_query( $link, $query)
mysql_real_escape_string -> mysqli_real_escape_string( $link)
mysql_select_db - > mysqli_select_db( $link, $database)
mysql_set_charset -> mysqli_set_charset( $link, $charset)
mysql_stat -> mysqli_stat( $link)
mysql_thread_id -> mysqli_thread_id( $link)

Code substitutions using VIM

:%s/mysql_/mysqli_/g
:%s/mysqli_query(/mysqli_query(\$db,/g
:%s/mysqli_error()/mysqli_error(\$db)/g
:%s/mysqli_errno()/mysqli_errno(\$db)/g

:%s/mysqli_real_escape_string(/mysqli_real_escape_string(\$db,/g
:wn

Further changes:

mysql_select_db vs mysqli_select_db needs parameters swapped

add global $db; to functions
replace eregi('') with preg_match('//i')
replace ereg('') with preg_match('//')
replace ereg_replace('') with preg_replace('//')
replace eregi_replace('') with eregi_replace('//i')

replace split with explode
php/php-mysqli.1644968543.txt.gz · Last modified: 2023/05/29 11:53 (external edit)