PHPバージョンアップの際に削除された関数(MySQL関数等)を使う方法
PHP5系で制作されたシステムを8系でも動くようにリプレイスしてほしいという案件があった。ざっとソースコードを見てみると7系で削除されたMySQL関数が使われているように見受けられた。ただ何故か8系の環境に各種ファイルをアップロードすると正常に動作した。削除された筈の関数が使えている方法を以下にメモ。
ソースコード
<?php if( !function_exists('mysql_connect') ){ function mysql_connect(string $host, string $user, string $pass, bool $new_link = false, int $clinet_flags = 0){ $mysqli_connect = mysqli_connect($host, $user, $pass); return $mysqli_connect; } } if( !function_exists('mysql_set_charset') ){ function mysql_set_charset(string $charset, mysqli $link_identifier = NULL){ return mysqli_set_charset($link_identifier, $charset); } } if( !function_exists('mysql_select_db') ){ function mysql_select_db(string $dbname, mysqli $mysqli_connect){ return mysqli_select_db($mysqli_connect, $dbname); } } if( !function_exists('mysql_query') ){ function mysql_query(string $sql, mysqli $mysqli_connect){ $result = mysqli_query($mysqli_connect, $sql); if( !$result ){ //エラー処理 die(); } return $result; } }
function_existsで関数が定義されているかチェックし、定義されていない場合は独自関数という形でMySQL関数を定義する形を取っていた。
所感
上記のような形で対応するといった発想は自分には無かったので勉強になった。
あんまり無いケースだとは思うけど似たようなリプレイス案件があった時のために覚えておきたいところ。
関連記事
-
-
CodeIgniter4でフォームからファイルをアップロードし保存する方法
CodeIgniter4.4.4でformから画像等のファイルをアップロードし、 ...
-
-
PHPで改行を含むデータをCSV化する際に表示崩れを防ぐ方法
PHPで改行を含むデータをCSV化した場合、そのCSVファイルをエクセル等で開く ...
-
-
PHPで住所や名前のテキストをランダム生成するライブラリFakerPHPの使い方
PHPでランダムなデータを生成したい際に値段や点数等の数値やパスワード等のランダ ...
-
-
PHPからDBX Platformを利用してDropbox内にディレクトリ(フォルダ)を作成する方法
PHPからDBX Platformを利用してDropbox内にディレクトリ(フォ ...
-
-
PHPを用いてフォームからzipファイルをアップロードしサーバ上で解凍(展開)させる方法
formからzipファイルをアップロードしサーバ上で解凍(展開)するという一連の ...