2

フォームからいくつかの値をデータベースに挿入するために、mySql で単純なクエリを作成しています。

私の質問は簡単ですが、変数をバインドすることと、それらをSQLステートメントに指定することの違いを参照してください。

バインディング:

$query = "INSERT INTO test (name, lastName, price) VALUES (:name, :lastName, :price)";
$apply = $con -> prepare($query);
$apply -> execute (array(':name'=>$name,':lastName'=>$lastName,':price=>$price'));

典型的:

$query = "INSERT INTO test (name, lastName, price) VALUES ($name, $lastName, $price)";
Execute the query....

上記のような単純なケースでも、Binding オプションは本当に推奨されますか? 何故ですか?

ありがとう!

4

3 に答える 3

0

ユーザー定義の値があり、ユーザーが簡単に操作できるため、クエリ構造を壊して不要なコマンドを実行する必要があります。

データがサーバーによってのみ操作される場合は必要ありません。ただし、ユーザーが操作できるスーパーグローバル (Cookie、セッション、投稿、取得、要求など) からのデータを使用するため、これは必須です。

于 2013-04-11T14:35:58.870 に答える
0

その方が安全だからです。

3 つの変数にユーザーのデータが入力されている場合、入力をサニタイズする必要はありません。また、そのクエリを複数回繰り返す必要がある場合は、全体的な実行が高速になるはずです。

個人的には、数か月後にクエリを再度読まなければならないときに、読みやすくデバッグしやすいと思います...

于 2013-04-11T14:36:15.937 に答える