这真的很奇怪。
此查询显然有效:
$query = mysql_query("SELECT * FROM restaurant_page WHERE title LIKE '%$search_title%'");
但是,这不是:
$category = 'restaurant_page';
$query = mysql_query("SELECT * FROM '$category' WHERE title LIKE '%$search_title%'");
使用第二个查询,我得到资源布尔错误。
$category
是用户想要搜索的表。当我用变量打印出查询时,它与第一个完全相同。为什么这不起作用?
答案 0 :(得分:2)
使用变量创建的查询是否在表名周围有引号?这对我来说似乎是个错误。
答案 1 :(得分:1)
在mysql查询中,不要在$ category附近加上引号。
$query = mysql_query("SELECT * FROM $category WHERE title LIKE '%$search_title%'");
答案 2 :(得分:1)
从'$category'
删除单引号。
"SELECT * FROM '$category' WHERE title LIKE '%$search_title%'"
---------------^^^^^^^^^^^^
如果需要,请用反引号括起$category
。仅当$category
包含MySQL保留关键字时才需要这样做。但是,因为它是一个可能成为可能的变量。
$query = mysql_query("SELECT * FROM `$category` WHERE title LIKE '%$search_title%'");
当然,请不要忘记逃避$category
,因为它可能是用户输入的。我们假设您已经为$search_title
这样做了。
$category = mysql_real_escape_string($category);
答案 3 :(得分:1)
请勿在表名周围使用单引号,而应使用反引号(`
):
$query = mysql_query("SELECT * FROM `$category` WHERE title LIKE '%$search_title%'");
NB。请确保$category
和$search_title
不是普通用户提供的变量
答案 4 :(得分:0)
为什么你在$ category附近有引号 - 删除这些并且它应该有效。
答案 5 :(得分:0)
您应始终将变量与实际字符串分开。做这样的事情:
$category = "restaurant_page";
$query = mysql_query("SELECT * FROM `".$category."` WHERE title LIKE
'%".$search_title."%'");
答案 6 :(得分:0)
LOL。这让我的一天。 删除$ category上的引号。我确定这只是一个有趣的错误。我们所有人都犯了一些错误。和合
要解决这个问题,可以解决这个问题。到"
$query = mysql_query("SELECT * FROM ".$category." WHERE title LIKE '%$search_title%'");