私は3つのテーブル(正規化された)を使用するタギングシステムで作業しています。私は、 "赤いリンゴ"のようなものを検索し、 "赤い"と "リンゴ"とタグ付けされたすべてのアイテムを表示するための準備文を作成したかったのです。SQLでIN関数を使用したPHPでのプリペアドステートメントの使用
$stmt = $db->prepare("SELECT co.content_id, co.description FROM em_content AS co LEFT JOIN em_contenttags AS ct ON co.content_id = ct.content_id LEFT JOIN em_tags AS ta ON ct.tag_id = ta.tag_id WHERE ta.tag IN (?)");
$stmt->bind_param("s", $query);
$stmt->execute();
$stmt->store_result();
私はのためのプレースホルダ$query
配列を作り、使用してみました「?」を:
現在、私のクエリは次のようになりますクエリでは「bind_param
」の「s」が返されますが、$query
を配列として渡すことはできません。それ以外の場合は、エラーがスローされます。
準備済みの文でこの作業を行う方法はありますか?
だけFYI、私は私が私の知る限りではmysqliの
アレイとして送信しないでください。 – jakx
私はそれを知っていますが、タグの乱数を選択できるようにするため、たとえば「赤いリンゴ」を検索する場合は、「緑のリンゴをニューヨークから」検索します。長さは毎回変わりますが、bind_paramは配列を許可していませんし、毎回動的に変数をランダムに割り当てることもできません。それは私が持っている問題ですので、文字列として送ることはできません – allanminium