⊗ppSpPDPP 60 of 83 menu

PHPにおけるPDOの位置プレースホルダー

位置プレースホルダーの操作方法を見ていきましょう。クエリに挿入したい2つの変数があるとします:

<?php $min = 1; $max = 5; ?>

これらの変数を次のように挿入したいとします:

<?php $sql = "SELECT * FROM users WHERE id>$min and id<$max"; ?>

しかし、この方法は安全ではありません。 変数を直接挿入する代わりに、疑問符で表される位置プレースホルダーに置き換えましょう:

<?php $sql = 'SELECT * FROM users WHERE id>? and id<?'; ?>

次に、クエリを準備するコマンドを実行します:

<?php $res = $pdo->prepare($sql); ?>

次に、変数を含む配列をパラメータとして渡してクエリを実行します。このとき、 変数は配列内に指定された順序でクエリに挿入されます:

<?php $res->execute([$min, $max]); ?>

その後、クエリの結果を取得できます:

<?php while ($row = $res->fetch()) { var_dump($row); } ?>

すべてをまとめると、次のコードになります:

<?php $min = 1; $max = 5; $sql = 'SELECT * FROM users WHERE id>? and id<?'; $res = $pdo->prepare($sql); $res->execute([$min, $max]); while ($row = $res->fetch()) { var_dump($row); } ?>

以下の変数が与えられています:

<?php $age = 30; $salary = 1000; ?>

年齢または給与が変数に指定された値と等しいすべてのユーザーを見つけてください。

あなたのコードに対してSQLインジェクションを試みてください。それが通らないことを確認してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否