带字符串的MYSQL查询请参阅数据库中的值

时间:2014-10-17 08:03:24

标签: php mysql

我有如下的MYSQL查询:

$sourcedata = mysql_fetch_array(
                mysql_query("SELECT Whereclause 
                               FROM generaltable 
                              WHERE ID = '1'"
                           )
                );

$Whereclause = $sourcedata['Whereclause'];

在数据库中“generaltable”的“Whereclause”字段中,包含以下文本:

WHERE username = '$_SESSION[username]'

然后我还有其他问题:

$data = mysql_fetch_array(
                   mysql_query("SELECT * 
                                  FROM usertable 
                                       $Whereclause"
                              )
                        );

当我echo $data['username'],时,它没有显示任何内容。

如果我从数据库中复制值来替换$ Whereclause它工作正常,如果我用'admin'代替'$ _SESSION [username]',它工作正常。

我该如何解决这个问题?需要你的帮助。

非常感谢。

2 个答案:

答案 0 :(得分:1)

正在使用fetch数组。你可以试试吗

$data[0]['username']

答案 1 :(得分:0)

您遇到的问题是$Whereclause是一个字符串,因此不会对其进行评估('$_SESSION[username]'保持原样)。

您必须告诉PHP使用函数eval()评估此字符串:

$data = mysql_fetch_array(
          mysql_query(
           eval("return \"SELECT * FROM usertable $Whereclause\";")
         )
        );