'like'ステートメントを含むクエリに問題があります。ここでMySQLの 'Like'クエリの問題
は私のコードです:
function get_number_of_locations_by_zip_tag($zip, $tag)
{
global $db;
$query = "SELECT * FROM location WHERE zip = :zip AND disabled = 0 AND (tags LIKE :tag OR name LIKE :tag) LIMIT :start, :number";
$statement = $db->prepare($query);
$statement->bindValue(':zip', $zip);
$statement->bindValue(':tag', '%'.$tag.'%', PDO::PARAM_STR);
$statement->execute();
$locations = $statement->fetchAll(); //fetch();
$statement->closeCursor();
return $locations;
}
私はタグは「名前」や「タグ」欄のいずれかに一致するが、その代わりに、それは場合にのみ行を返すローを返すために、クエリを期待していタグは一致します。
私は、クエリを切り替える場合:
$query = "SELECT * FROM location WHERE zip = :zip AND disabled = 0 AND (name LIKE :tag OR tags LIKE :tag) LIMIT :start, :number";
そして、その結果は、それが唯一の名前のフィールドが一致した行を返しますところ、反対で、タグのフィールドを無視します。
誰でもこのクエリに間違いはありますか?私が開発を開始したときにWindowsのXAMPPサーバーに期待したとおりに動作しますが、LAMPサーバーにすべてを切り替えたとき、このクエリは正しく機能しなくなりました。
すべてのヘルプは高く評価され、
[あなたの投稿に署名やタグラインを追加しないでください](http://stackoverflow.com/faq#signatures)。 – meagar