使用子查询的MySql中的语法错误

时间:2013-03-30 20:28:08

标签: php mysql phpmyadmin

以下是MySql查询:

$queryfilter = "SELECT * FROM tablename where sector = " .$_SESSION['idfilterdrop']. " AND 
region IN (SELECT region from 
    tablename where sector = " . $_SESSION['sector'] ." OR region = " . 
 $_SESSION['r1'] ." OR theme = " . $_SESSION['theme'] .")";

帮我查找语法错误。我确信在上面的查询中存在双引号的问题。当我在MySql提示符上运行此查询时,它运行正常,但是当我用变量替换常量值时,此查询不起作用。

1 个答案:

答案 0 :(得分:0)

不幸的是,我们不知道您的$_SESSION数组是否包含整数或字符串。如果元素sectorr1theme是字符串,则需要在SQL中引用它们,如下所示:WHERE sector = '". $_SESSION['sector'] . "' OR

此外,您的表名为database并没有帮助。如果我没记错的话,DATABASE是一个保留字,所以你需要在该表名称附近放置一些:

... FROM `database` ...