php / mysql帐户激活

时间:2011-11-18 07:06:33

标签: php mysql

我的新网站中的所有内容都运行正常,但我无法使用这段代码:

$query = mysql_query("SELECT * FROM members WHERE useremail = '$useremail'");
$row = mysql_fetch_assoc($query);
$activation = $row['activation'];
if ($activation == '0') {
    die('Your account is not yet active. Please check your email!');
    exit();
}

在数据库中,类型为enum('0', '1'),字段名称为activation

以下是我收到的错误消息:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result

有人可以给我一个提示吗?

谢谢。

3 个答案:

答案 0 :(得分:0)

错误消息表明您的查询无效:

$query = mysql_query("SELECT * FROM members WHERE useremail = '$useremail'");

您是否正在为$usermail进行任何输入清理?

您确定您的数据库包含该表,并且该表包含该列。

尝试做一些调试:

$query = "SELECT * FROM members WHERE useremail = '$useremail'";
echo $query;

并尝试直接在您的数据库中运行$query的内容(来自phpMyAdmin或其他内容)。

答案 1 :(得分:0)

  

我新网站上的所有内容都运转良好

......直到出现问题。

您必须学习如何处理错误

以这种方式至少 所有您的查询

$query  = "SELECT * FROM members WHERE useremail = '$useremail'"
$result = mysql_query() or trigger_error(mysql_error()." ".$query);

并且您始终会收到任何错误通知,原因

或实施任何其他方式的错误通知,使用 mysql_error()功能,这是世界上唯一可以告诉您实际问题所在的功能。 < / p>

答案 2 :(得分:-1)

将您的第一行更改为:

$query = mysql_query("SELECT * FROM members WHERE useremail = '$useremail'") or die(mysql_error());

它会吐出导致Warning =)

的mysql错误

您不应该假设对mysql_query的调用返回有效结果;最好先测试结果,例如

$r=mysql_query("SELECT * YADYADA");
if($r && mysql_num_rows($r)>0){
  $row=mysql_fetch_assoc($r);
}else{
  //Uh oh, something's not right~~~ throw an exception maybe?
}