PHP コード内の「mysql_」を「mysqli_」に単純に置き換えることはできますか?

DDD
リリース: 2024-11-26 15:53:13
オリジナル
868 人が閲覧しました

Can I Simply Replace `mysql_` with `mysqli_` in My PHP Code?

mysql_ を mysqli_ に盲目的に置き換える: 注意すべき話

PHP からの mysql_ 関数の廃止と最終的な削除により、mysql_ 関数を mysqli_ にシームレスに置き換えることはできるのかという疑問が生じています。同等であると仮定したくなるかもしれませんが、答えは断固としたノーです。

コンバータ ツール: 一時的な解決策

ありがたいことに、mysql_ 関数を使用する広範な既存コードを持っている人のために、コンバータが存在します。ほとんどの変換プロセスを自動化できるツール (https://github.com/philip/MySQLConverterTool)。これにより、即時の機能が提供され、スクリプトが期待どおりに実行できるようになります。

手動移行: オブジェクト指向の採用

コンバータ ツールによって提供される一時的な解決策を超えて、オブジェクト指向に移行することが賢明です。データベース相互作用の方法論。このアプローチには、コード構成や保守性の向上など、いくつかの利点があります。

1.接続の確立

mysqli_ では、接続の確立には、新しい mysqli オブジェクトの作成と、それを PHP 変数に割り当てることが含まれます。例:

$mysqli = new mysqli($host, $username, $password, $database);
ログイン後にコピー

接続を開く前に、mysqli_ のエラー報告を必ず有効にしてください:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
ログイン後にコピー

2.クエリ実行

すべての mysqli_ 関数は、手続き型コードの最初の引数として、またはオブジェクト指向コードのオブジェクト メソッドとして接続を必要とするようになりました。クエリを実行する場合、コードは次のようになります。

手続き型:

$result = mysqli_query($mysqli, $sql);
ログイン後にコピー

オブジェクト指向:

$result = $mysqli->query($sql);
ログイン後にコピー

3.結果の取得

結果の取得は、mysqli_ では mysql_ からほとんど変更されていません。

手続き型:

while ($row = mysqli_fetch_assoc($result))
ログイン後にコピー

オブジェクト指向:

while ($row = $result->fetch_assoc())
ログイン後にコピー

4.接続の終了

接続を適切に閉じることが不可欠であり、プロセスは mysql_ との一貫性を保ちます。 mysqli_:

手続き型:

mysqli_close($mysqli);
ログイン後にコピー

オブジェクト指向:

$mysqli->close();
ログイン後にコピー

追加の考慮事項

mysql_ から mysqli_ への移行には以下が含まれます接続のクローズ、結果の解放、エラー処理、行カウントなど、関連するすべての関数を変換します。

最初の変換には手作業が必要になる場合がありますが、オブジェクト指向のアプローチを採用すると、長期的な変換が可能になることに注意してください。コードベースにとっての利点。したがって、mysql_ 関数を盲目的に mysqli_ に置き換えることは理想的な解決策ではありませんが、より現代的で保守しやすい PHP コードベースへの足がかりにはなり得ます。

以上がPHP コード内の「mysql_」を「mysqli_」に単純に置き換えることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート