PREPARE
SQLステートメントでおよびを使用するとEXECUTE
、ユーザーが指定したデータがSQLインジェクションに対応できないものにサニタイズされると聞いています。これは本当ですか?
私の元のクエリはこれです:
$query =
"SELECT * FROM sales_orders
WHERE ksisoldby ILIKE '".$user."'";
これは、prepare/executeステートメントに変更するための私の最善の推測です。
<?php
$id = $_POST['id'];
$search = $_POST['user_supplied_search_term'];
PREPARE search_query_function (varchar, varchar) AS
SELECT * FROM sales_orders
WHERE ksisoldby ILIKE '$1'";
EXECUTE search_query_function($id, $search);
?>
これは正しく書かれ/呼び出されていますか?PDO
私が読んだいくつかの組み込みのphpオブジェクト( )もあります。代わりに、または組み合わせてそれらを使用する必要がありますか?この種の幅広い質問について助けてくれてありがとう。