PHP からの mysql_ 関数の廃止と最終的な削除により、mysql_ 関数を mysqli_ にシームレスに置き換えることはできるのかという疑問が生じています。同等であると仮定したくなるかもしれませんが、答えは断固としたノーです。
ありがたいことに、mysql_ 関数を使用する広範な既存コードを持っている人のために、コンバータが存在します。ほとんどの変換プロセスを自動化できるツール (https://github.com/philip/MySQLConverterTool)。これにより、即時の機能が提供され、スクリプトが期待どおりに実行できるようになります。
コンバータ ツールによって提供される一時的な解決策を超えて、オブジェクト指向に移行することが賢明です。データベース相互作用の方法論。このアプローチには、コード構成や保守性の向上など、いくつかの利点があります。
mysqli_ では、接続の確立には、新しい mysqli オブジェクトの作成と、それを PHP 変数に割り当てることが含まれます。例:
$mysqli = new mysqli($host, $username, $password, $database);
接続を開く前に、mysqli_ のエラー報告を必ず有効にしてください:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
すべての mysqli_ 関数は、手続き型コードの最初の引数として、またはオブジェクト指向コードのオブジェクト メソッドとして接続を必要とするようになりました。クエリを実行する場合、コードは次のようになります。
手続き型:
$result = mysqli_query($mysqli, $sql);
オブジェクト指向:
$result = $mysqli->query($sql);
結果の取得は、mysqli_ では mysql_ からほとんど変更されていません。
手続き型:
while ($row = mysqli_fetch_assoc($result))
オブジェクト指向:
while ($row = $result->fetch_assoc())
接続を適切に閉じることが不可欠であり、プロセスは mysql_ との一貫性を保ちます。 mysqli_:
手続き型:
mysqli_close($mysqli);
オブジェクト指向:
$mysqli->close();
mysql_ から mysqli_ への移行には以下が含まれます接続のクローズ、結果の解放、エラー処理、行カウントなど、関連するすべての関数を変換します。
最初の変換には手作業が必要になる場合がありますが、オブジェクト指向のアプローチを採用すると、長期的な変換が可能になることに注意してください。コードベースにとっての利点。したがって、mysql_ 関数を盲目的に mysqli_ に置き換えることは理想的な解決策ではありませんが、より現代的で保守しやすい PHP コードベースへの足がかりにはなり得ます。
以上がPHP コード内の「mysql_」を「mysqli_」に単純に置き換えることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。