mysql查询,数组为WHERE参数

时间:2013-10-25 19:34:53

标签: php mysql arrays

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

$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 个答案:

答案 0 :(得分:1)

你应该把:

  

" SELECT * FROM users WHERE active =' 1'和email = '"。$ author [1]。"' "

确保你有推荐人报价

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

虽然我还有一个提示: 像这样运行查询:     $ query = mysql_query('...')或die(mysql_error()); 有了这个,你至少会知道它失败的原因。

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