1
PHPでPDOオブジェクトを使用してMySQLクエリを実行していますが、IN() PDO :: Prepare()を使用してください。
ユーザー入力:コンマ
EX)バスケットボールで区切られたタグ、サッカー
私は、次のコード:PHP質問:PDOのPrepare()とExecute()でMYSQL IN()が配列に対して機能しない
$query =
"SELECT s.item_id, s.item_type, s.title
FROM search_all s
WHERE EXISTS (
SELECT t.item_id
FROM tags t
WHERE t.item_id = s.item_id AND t.item_type = s.item_type
AND t.tag IN (:tags)
)";
$mysql_vars[':tags'] = implode("','",explode(',',$tags));
$stmt = $connection->prepare($query);
$stmt->execute($vars);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
私が理解から、実行()は、二重引用符で各変数をラップします( ")ので、私は手動でのようなSQLを模倣するために、各入力間の二重引用符を追加します。
SELECT s.item_id, s.item_type, s.title
FROM search_all s
WHERE EXISTS (
SELECT t.item_id
FROM tags t
WHERE t.item_id = s.item_id AND t.item_type = s.item_type
AND t.tag IN ("basketball","football")
)
しかしこれは、私のために働いていないとどのような方法があります。 SQL IN()句を使用している間もPDOのprepare()およびexecute()を使用しますか?
ありがとうございます。私はそれをする必要はないと望んでいたが、それはそのように働く:) – Ripptor