1

用户会话中有一个电子邮件地址,我正在尝试使用提取的信息从数据库中访问用户的其他相关信息。这就是我所拥有的。

$author = explode(":", $_SESSION['user_id']);

$query = mysql_query("SELECT * FROM users WHERE `active`='1' AND `email`=$author[1]");

while ($query_row = mysql_fetch_assoc($query)) {

// does stuff in here.

}

出于某种原因,我回来了“mysql_fetch_assoc() 期望参数 1 是资源,给定的布尔值。” 如果我回显“$author['1']”,我会得到登录用户的正确电子邮件地址。如何正确编写查询?

4

4 回答 4

1

你应该把:

"SELECT * FROM users WHERE active='1' AND email= '".$author[1]."' "

确保你有正确的报价在那里

于 2013-10-25T19:37:52.780 回答
0
$qry ="SELECT * FROM users WHERE `active`='1' AND `email`= ".$author['1'];
$query = mysql_query($qry);
于 2013-10-25T19:39:09.130 回答
0
$query = mysql_query("SELECT * FROM users WHERE `active`='1' AND `email`='".$author[1]."'");
于 2013-10-25T19:39:44.317 回答
0

您可以用大括号将变量括在引号中:

$query = mysql_query("SELECT * FROM users WHERE `active`='1' AND `email`={$author[1]}");

尽管我还有一个提示:运行这样的查询: $query = mysql_query('...') 或 die(mysql_error()); 有了这个,你至少会知道它为什么会失败。

PS我猜你有理由使用mysql扩展,但无论如何你应该使用PDO或mysqli而不是mysql。您可以使用 mysqli 获得占位符,或者使用 PDO 获得命名参数。更好地工作。

于 2013-10-25T19:44:41.977 回答