これにはもう一組の目が必要です。どんな助けでも大歓迎です。これは非常に単純な検索クエリですが、何らかの理由でバグを見つけることができません。まあ、私はバグがどこにあるか知っています。私はそれを乗り越えることができません。ともかく.....
POST変数から検索値を取得し、その変数を設定してから、次のように列変数を設定しています...
$term = "'%".$_POST['searchTerm']."%'";
$field = "columnName";
これらをエコーすると、完全に表示されます。したがって、フォームに「a」と入力すると、「%a%」とcolumnNameがエコーされます。
次に、クエリを準備し、次のようにパラメータをバインドします...
$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");
$suquery->bind_param('ss', $field, $term);
$suquery->execute();
結果は常に0行を返します。これで遊んでいるときに私が見つけたのは、バインドされたパラメーターが正しくエコーされていても、どちらも正しく機能していないということです。たとえば、列がハードコーディングされ、検索語のみをバインドするようにクエリを変更すると、...
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();
返される行はまだゼロです。これは、$fieldが'%a%'としてエコーしても、何かがまだオフになっていることを示しています。私は本当にそれで途方に暮れています。同様に、検索語を配線して列をバインドすると...
$suquery=$dbCon->prepare("select * from Table where ? LIKE '%a%'");
$suquery->bind_param('s', $field);
$suquery->execute();
返される行が多すぎます。実際には、任意の列の値に文字「a」が含まれているテーブルから行をプルしています。したがって、列も用語も正しくバインドされていません。メーデー!