首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将WHERE子句用作MySQL查询中的变量不起作用

问将WHERE子句用作MySQL查询中的变量不起作用
EN

Stack Overflow用户
提问于 2011-11-17 03:18:46
回答 7查看 1.4K关注 0票数 0

这真的很奇怪。

这个查询显然是有效的:

代码语言:javascript
复制
$query = mysql_query("SELECT * FROM restaurant_page WHERE title LIKE '%$search_title%'");

但是,这不是:

代码语言:javascript
复制
$category = 'restaurant_page';

$query = mysql_query("SELECT * FROM '$category' WHERE title LIKE '%$search_title%'");

对于第二个查询,我得到了资源布尔值错误。

$category是用户要从中进行搜索的表。当我打印出带有变量的查询时,它与第一个查询完全相同。为什么这不起作用呢?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-11-17 03:23:01

不要在表名两边使用单引号,而应使用反引号(`):

代码语言:javascript
复制
$query = mysql_query("SELECT * FROM `$category` WHERE title LIKE '%$search_title%'");

注意:请确保$category和$search_title不是普通的用户提供的变量

票数 1
EN

Stack Overflow用户

发布于 2011-11-17 03:20:35

使用变量创建的查询在表名中是否有引号?在我看来这是个错误。

票数 2
EN

Stack Overflow用户

发布于 2011-11-17 03:21:02

在mysql查询中,不要用引号将$category括起来。

代码语言:javascript
复制
$query = mysql_query("SELECT * FROM $category WHERE title LIKE '%$search_title%'");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8157371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档