我有如下的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]',它工作正常。
我该如何解决这个问题?需要你的帮助。
非常感谢。
答案 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\";")
)
);