grep で、ソースファイルの当たりをつける
> grep mysql_ *.php >mysql_grep.txt
sed のスクリプトを用意
> cat ../test/sed.txt
s/mysql_close/mysqli_close/g
s/mysql_connect/mysqli_connect/g
s/mysql_error()/$GLOBALS['DB']->error/g
s/mysql_fetch_assoc/mysqliX_fetch_assoc/g
s/mysql_num_rows/mysqli_num_rows/g
s/mysql_query/mysqliX_query/g
s/mysql_real_escape_string/$GLOBALS['DB']->escape_string/g
s/mysql_select_db/mysqliX_select_db/g
s/mysql_insert_id/mysqli_insert_id($GLOBALS['DB'])/g
s/mysql_affected_rows(db_init())/mysqli_affected_rows(db_init())/g
s/mysql_affected_rows()/mysqli_affected_rows(db_init())/g
s/mysql_data_seek/mysqli_data_seek/g
大体、こんな感じ
(あらかじめ別ディレクトリoldへソースファイルをバックアップコピーもしておく)
(あらかじめ別ディレクトリnewへソースファイルをコピーしておきそこで作業)
sedで一気に変更
php の構文チェックをディレクトリの全ファイルまとめて行う
> find ./ -name "*.php" -exec php -l {} \;
後は、実行ディレクトリへ*phpをコピーして確認。
以下、互換性のための自作関数3個
function mysqliX_fetch_assoc($result)
{
$ret = mysqli_fetch_assoc($result);
if($ret == NULL){
$ret = false;
}
return $ret;
}
function mysqliX_query($query, $link)
{
return mysqli_query($link, $query);
}
function mysqliX_select_db($database_name, $link_identifier)
{
return mysqli_select_db($link_identifier, $database_name);
}