ホームページ  >  記事  >  データベース  >  PHP をアップグレードすると、mysql_* 関数が非推奨になるのはなぜですか?

PHP をアップグレードすると、mysql_* 関数が非推奨になるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-05 13:33:02613ブラウズ

Why Are My mysql_* Functions Deprecated After Upgrading PHP?

PHP アップグレード後の非推奨の mysql_* 関数: 解決策

PHP 5.2.0 から 5.5.0 にアップグレードした後、試行すると問題が発生する可能性があります。 mysql_* 関数を使用します。これは、これらの関数の非推奨が原因です。

エラーが発生しました: 非推奨の mysql_real_escape_string()

これを解決するには、mysql_real_escape_string() を最新の対応するもの: mysqli_real_escape_string() に置き換えます。 ).

エラーが発生しました: mysqli_real_escape_string() 2 つのパラメータが必要です

mysqli_real_escape_string() を使用する場合、接続変数とエスケープする文字列の 2 つの引数が必要です。

変更を加えたコード例:

<?php
$connection = mysqli_connect("host", "my_user", "my_password", "my_db");
$username = mysqli_real_escape_string($connection, $username);
$password = mysqli_real_escape_string($connection, $password);

$query = "SELECT * FROM login WHERE username = '{$username}' AND password = '{$password}' AND status=1";

オブジェクト指向アプローチの使用を検討する

保守性を高めるには、次のことを検討してください。接続の詳細をカプセル化するデータベース オブジェクト クラスを使用します:

<?php
class Database {
    private $connection;

    public function __construct($host, $user, $password, $database) {
        $this->connection = mysqli_connect($host, $user, $password, $database);
    }

    public function escape($string) {
        return mysqli_real_escape_string($this->connection, $string);
    }

    // Other database operations...
}

結論:

これらのガイドラインに従うことで、開発者は mysql_ で発生した非推奨の問題を正常に解決できます。 ※PHPア​​ップグレード後の機能となります。

以上がPHP をアップグレードすると、mysql_* 関数が非推奨になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。