mysql ライブラリから PDO に移行するときによくある質問の 1 つは、real_escape_string 関数の置き換えに関するものです。この記事では、PDO を使用して文字列をエスケープするための推奨方法について詳しく説明します。
PDO で文字列をエスケープするための推奨方法は、PDO::prepare() を使用することです。この機能を使用すると、異なるパラメータ値を使用して複数回実行できる準備済みステートメントを作成できます。プリペアド ステートメントを使用すると、SQL インジェクション攻撃を防止し、アプリケーションのパフォーマンスを最適化できます。
PDO プリペアド ステートメントは、SQL クエリをパラメータから分離することで機能します。これにより、PDO ドライバーはステートメントのクエリ プランとメタ情報を最適化できます。準備されたステートメントを実行するときは、パラメーター値を配列として指定します。 PDO はこれらの値を自動的に引用符で囲んでエスケープするため、文字列を手動で引用符で囲む必要がなくなります。
PDO Prepare を使用して文字列をエスケープする方法の例を次に示します。
$statement = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$statement->bindParam(':name', $name);
$statement->bindParam(':email', $email);
$statement->execute();
この例では、準備されたステートメントの実行時に、:name および :email プレースホルダーが指定されたパラメーター値に置き換えられます。 PDO はこれらの値をデータベースに挿入する前に自動的にエスケープし、SQL インジェクションを防ぎます。
PDO Prepare を使用すると、文字列を簡単にエスケープし、SQL インジェクション攻撃を防ぐことができます。このアプローチは安全かつ効率的であり、PDO クエリのパフォーマンスを最適化します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3