0

特定の列(タイプ:テキスト)で検索する特定の単語をmysqlテーブルで検索する必要があります。

最も簡単な方法は次のことだと思いました。

$str = "something"; # let's say passed by POST or GET from a form
$sql = "select lala, textThing from table_name where dudu=1 and textThing LIKE %'$str'%";

これは、mysqlで手動でクエリを実行する場合は問題なく機能するようですが、Webを介したphpでは機能しません。投げる

SQL構文にエラーがあります。1行目の「%searchedString%」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

ここで、searchedStringは、私が検索した文字列です:)

最初のPHPは次のよ​​うになります。

$str = NULL;


echo "<p>Search for a string</p>";
echo "<form name='formSearch' action='result.php' method='post'>";
echo "<input type='text' name='text' size='30'/>";
echo "<input type='submit' name='search' value='Search'/>";
echo "</form>";

2つ目は、「テキスト」を取得してmysqlを実行し、データを表示することになっています。

4

2 に答える 2

2

LIKE句を引用符で囲む必要があります。このようにあなたのphpコードでそれらをエスケープします:

$sql = "select lala, textThing from table_name where dudu=1 and textThing LIKE \"%".$str."%\""
于 2012-07-18T15:48:26.647 に答える
1

引用符または二重引用符の中に%を含める必要があります。

$ sql = "select lala、textThing from table_name where dudu = 1 and textThing LIKE'%$ str%'";

また

$ sql = "select lala、textThing from table_name where dudu = 1 and textThing LIKE'%" + $ str + "%'";

于 2012-07-18T15:52:58.310 に答える