非推奨の「mysql_*」関数を使用してレガシー PHP コードを書き直すにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-26 09:43:30
オリジナル
808 人が閲覧しました

How can I rewrite legacy PHP code using deprecated `mysql_*` functions?

非推奨の mysql_* 関数によるレガシー PHP コードの書き換え

お気づきのとおり、PHP の mysql_* 関数はセキュリティ上の理由から非推奨になりました。そして安定性への懸念。コードを効果的に書き直すには、次のガイドラインを考慮してください。

1. PDO またはプリペアド ステートメントに切り替える:

セキュリティを向上させ、SQL インジェクションの脆弱性を回避するには、mysql_* 関数を PDO またはプリペアド ステートメントに置き換えます。

2.データベース接続の再構成:

データベース接続は、個別のパラメーターではなく接続文字列を使用して確立する必要があります。例:

<code class="php">$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');</code>
ログイン後にコピー

3.不要なコンストラクターとデストラクターを削除します:

__construct や __destruct などの関数は PDO では必要なくなりました。 PDO はデータベース接続とクリーンアップを内部で処理します。

4.簡略化されたデータベース選択:

PDO でデータベースを選択するには、exec メソッドを使用します:

<code class="php">$db->exec("USE " . $database);</code>
ログイン後にコピー

5。データベース クラス拡張を検討してください:

必要に応じて、PDO から拡張して、カスタム機能を備えた独自のデータベース クラスを作成できます。

リライト例:

元のスクリプトは、PDO を使用して次のように書き換えることができます:

<code class="php">class dbConn extends PDO
{
    public function connect()
    {
        try {
            parent::__construct('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');
        } catch (PDOException $e) {
            die('Database connection failed: ' . $e->getMessage());
        }
    }

    public function selectDb($database)
    {
        $this->exec("USE " . $database);
        $this->query("SET NAMES 'utf8'");
    }
}</code>
ログイン後にコピー

PDO またはプリペアド ステートメントに切り替えると、セキュリティが強化されるだけでなく、コードのメンテナンスが簡素化され、パフォーマンスも向上することに注意してください。

以上が非推奨の「mysql_*」関数を使用してレガシー PHP コードを書き直すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!