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 在 php 上进行。它抛出

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '%searchedString%' 附近使用正确的语法

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>";

第二个只是获取“文本”并执行 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 回答