我的搜索查询有问题,$s_查询。
用户可以搜索与mysql数据库中的列相对应的类型(日期、标题或位置)

$search_type =mysql_real_escape_string($_POST['type']);
$search_query =mysql_real_escape_string($_POST['search_query']);

if ($search_query == "") {
  echo "<p>Please enter a search...</p>";
  exit;}

$s_query = "SELECT * FROM `posts` WHERE `$search_type` == `$search_query` ";

$s_result1=mysql_query($s_query);

if (!$s_result1) {
    die('Invalid query: ' . mysql_error());
    //header ("Location: /UC_page.html");
}

$s_row = mysql_fetch_array($s_result1);
$s_num1=mysql_numrows($s_result1);
mysql_close();

mysql_error说:
您的SQL语法有错误;请查看对应于MySQL服务器版本的手册,以获取在“==1956”附近使用的正确语法
我已经尝试了所有可能的操作符和我能找到的语法,但我卡住了。
有一次我得到了工作的日期,但没有任何条件。
提前谢谢。

最佳答案

实际上你有两个问题。首先,你用`包围你的值,这是无效的。改用"'
另外,==是无效语法,您需要使用单个=来代替。不过,看看你在做什么,你可能想用LIKE代替,用于不区分大小写的搜索。
所以这个查询应该可以工作:

SELECT * FROM `posts` WHERE `$search_type` = '$search_query'

或使用LIKE
SELECT * FROM `posts` WHERE `$search_type` LIKE '$search_query'

07-24 09:45
查看更多