我有一个网页,允许用户注册参加活动。这工作正常,但我想添加一个用户不能多次注册同一事件。所以我使用select语句检查是否存在与用户输入电子邮件和所需事件匹配的记录。如果存在记录,则返回值1或更大,结果通知用户他们已经注册。但是,无论选择哪个电子邮件或事件,我的代码都返回值1。任何帮助将不胜感激。
$sql2= "SELECT COUNT*
FROM event_attendees
WHERE event_name='$reg' AND user_email='$email'";
$r=mysql_query($sql2,$conn)or die(mysql_error());
if($r=1)
{
echo"Already Registered for this event";
echo $r;
}
答案 0 :(得分:2)
应该是if($r==1)
而不是if($r=1)
您正在进行作业而非比较。更改它,您的代码将按预期工作。
此mysql_*
)扩展程序自PHP 5.5.0
起已弃用,将来会被删除。相反,应使用MySQLi
或PDO_MySQL
扩展名。切换到PreparedStatements
甚至可以更好地抵御SQL注入攻击!
答案 1 :(得分:0)
使用
if((int)$r === 1)
{
}
=表示授予
==表示相等的
===表示相同且类型相同
答案 2 :(得分:0)
你有几个问题:
MySQL的正确语法是SELECT COUNT(*) FROM...
。
在条件语句中,您有if($r=1)
- 即将值1分配给$r
。您需要if($r==1)
。
mysql_query
返回资源,而不是您期望的计数。你需要做更多的工作来从反应中获得计数。