mysql_real_escape_string は MySQL クエリをエスケープして SQL インジェクションを防ぐ方法を提供しますが、PHP データ オブジェクト (PDO) を使用することをお勧めします。
PDO は、さまざまなデータベース サーバーと対話するための統一されたアプローチを提供する PHP のオブジェクト指向インターフェイスです。一般的なデータベース操作をオブジェクトのメソッドとプロパティにカプセル化し、データベースの処理を簡素化します。
1.エスケープ: PDO は、使用されているデータベース エンジンに基づいて入力値を自動的にエスケープします。これは、悪意のある入力によってデータベースが侵害される可能性がある SQL インジェクションを防ぐのに役立ちます。
2.パラメータ化されたクエリ: PDO はパラメータ化されたクエリをサポートしており、SQL ステートメント内のプレースホルダに値をバインドできます。これにより、クエリ パラメータの偶発的または意図的な操作が防止され、セキュリティがさらに強化されます。
3.データベースの独立性: PDO はさまざまなデータベース サーバー (MySQL、PostgreSQL、Oracle など) に接続できます。接続文字列を変更するだけで、コードを変更せずにデータベース間をシームレスに切り替えることができます。
4.オブジェクト指向設計: PDO はオブジェクト指向であり、ベスト プログラミング プラクティスに従います。これにより、再利用可能なデータベース接続オブジェクトを作成し、より制御性とモジュール性を高めてデータベース操作を処理できるようになります。
MySQL エスケープに PDO を使用するには、次の手順に従います:
データベースに接続:
$dsn = 'mysql:dbname=mydb;host=localhost';
$user = 'username';
$password = 'password';
$pdo = new PDO($dsn, $user, $password);
クエリの準備:
$query = $pdo->prepare('SELECT * FROM users WHERE username = :username');
バインドパラメータ:
$query->bindParam(':username', $username);
クエリを実行:
$query->execute();
結果のフェッチ:
$results = $query->fetchAll(PDO::FETCH_ASSOC);
PDO を使用すると、MySQL クエリをエスケープし、データベースと対話するための堅牢で安全なメカニズムを利用できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3