0

ワイルドカードを使用して、すべてのレコードが一致するようにします。

私のコード:

if(empty($tag))
{
$tag="%";
}

mysql_query("select * from mytable where instr(tag,'$tag')>0") or die(mysql_error());

しかし、それはゼロの結果を返します。もしそれでも

 if(empty($tag))
    {
    $tag="*";
    }

それでもゼロの結果が返されます。この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

INSTRワイルドカードをサポートしていません。

MySQL クエリでワイルドカードを使用する場合は、 LIKEREGEXPなど、ワイルドカードをサポートする関数を使用する必要があります。つまり、次のようになります。

mysql_query("select * from mytable where tag LIKE '%$tag%'")

上記のクエリは、 の任意の値に対して機能します$tag。空白の値 (空の文字列) は、すべてのレコードを返します。$tag値も適切にサニタイズしてください。

于 2009-12-15T05:13:58.867 に答える