我的搜索查询有问题,$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'