ホームページ >バックエンド開発 >PHPチュートリアル >非推奨の「mysql_*」関数を使用して古い MySQL-PHP コードを最新のプリペアド ステートメントと PDO で書き直すにはどうすればよいですか?

非推奨の「mysql_*」関数を使用して古い MySQL-PHP コードを最新のプリペアド ステートメントと PDO で書き直すにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-26 00:55:28272ブラウズ

How can I rewrite old MySQL-PHP code using deprecated `mysql_*` functions with modern prepared statements and PDO?

非推奨の mysql_* 関数を使用した古い MySQL-PHP コードの書き換え

この現代の PHP 開発時代では、最新の状態を維持することが不可欠です。現在までのベストプラクティスを反映しています。最も差し迫った懸念の 1 つは、より安全で安定したプリペアド ステートメントと PDO (PHP データ オブジェクト) を優先して mysql_* 関数が非推奨になることです。

レガシー コードを使用するという不幸な状況に陥った場合、 mysql_* 関数はまだ使用されていますが、心配する必要はありません。この移行をうまく進めるためのステップバイステップのガイドを次に示します。

接続パラメータの変換

初期設定は次のように PDO の接続文字列に変換されます。

<code class="php">// Old:  $db = new dbConn('127.0.0.1', 'root', 'pass', 'people', 'animals');
// New:  $db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');</code>

冗長関数の削除

コンストラクター (__construct) とデストラクター (__destruct) は PDO では必要なくなりました。接続は、PDO オブジェクトのインスタンス化時に自動的に確立されます。

データベース選択のリファクタリング

selectDb 関数も冗長化されます。データベースの選択は、PDO 接続文字列に組み込まれます。

更新されたクラス

次のコードは、更新された dbConn クラスを反映しています:

<code class="php">class dbConn extends PDO
{
    public function __construct($dsn, $user, $password, $options = [])
    {
        parent::__construct($dsn, $user, $password, $options);
    }
}</code>

拡張性

必要に応じて、PDO から拡張して独自のカスタム データベース クラスを作成できます。これにより、コードの柔軟性と流暢性が高まります。

使用例

<code class="php">$db = new dbConn('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');

// Query using prepared statements
$statement = $db->prepare('SELECT * FROM users WHERE name = ?');
$statement->execute([$name]);</code>

結論

PDO の導入PHP コードにより、セキュリティ、安定性、開発者にとっての使いやすさが強化されます。これらの手順に従うことで、古い mysql_* コードを正常に書き換えて、PHP 開発の実践を向上させることができます。

以上が非推奨の「mysql_*」関数を使用して古い MySQL-PHP コードを最新のプリペアド ステートメントと PDO で書き直すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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