[英]mysql_num_rows if count is greater than 1
我正在使用Mysql_num_rows来获取数据(他们的电子邮件和IP),如果所说的用户已经输入了数据,它将被拒绝,但是如果没有,则它会成功。
但是,如果我更改IP仍然可以成功,什么时候不应该,因为即时通讯仍在使用相同的电子邮件? 它不会同时检查电子邮件和IP。 Thankyew提前'-'
$query = "SELECT * FROM tbl_1 WHERE Email='$Email' AND IP='$ip'";
$Result = mysql_query($query) or die ('unable to run: ' .mysql_error());
$count = mysql_num_rows($Result);
if($count==1)
{
echo 'You have already entered this competition!';
}
else {
echo 'success';
}
您的代码包含WHERE Email='$Email' AND IP='$ip'";
但是您in a comment
写道:
““ $ Email = $ _ POST ['email'];来自提交表单,而IP来自代码:$ IP = $ _SERVER [” REMOTE_ADDR“];位于此脚本页面的顶部”
您正在使用$IP = $_SERVER["REMOTE_ADDR"];
您应该在哪里使用
$ip = $_SERVER["REMOTE_ADDR"];
或WHERE Email='$Email' AND IP='$IP'";
$IP
和$ip
是不同的东西,它们是“完全两种不同的动物” -
变量区分大小写。
旁注:您可以使用OR
代替AND
,如果有人尝试使用其他电子邮件但具有相同的IP进行注册(反之亦然),则他们将无法这样做。
脚注:
mysql_*
函数弃用通知:
http://www.php.net/manual/en/intro.mysql.php
自PHP 5.5.0起不推荐使用该扩展,不建议编写新代码,因为将来会删除该扩展。 相反,应使用mysqli或PDO_MySQL扩展名。 另请参见MySQL API概述,以获取选择MySQL API时的更多帮助。
这些功能使您可以访问MySQL数据库服务器。 有关MySQL的更多信息,请参见» http://www.mysql.com/ 。
可以在» http://dev.mysql.com/doc/中找到MySQL的文档。
你可以这样尝试,有点不同
$query = "SELECT COUNT(*) as count Email, IP FROM tbl_1 WHERE Email='$Email' AND IP='$ip'";
$Result = mysql_query($query);
if($Result){
$row = mysql_fetch_assoc($Result);
if((int)$row['count'] > 0)
{
echo 'You have already entered this competition!\n';
echo $row['Email'];
echo $row['IP'];
}
else {
echo 'success';
}
}else{
die ('unable to run: ' .mysql_error());
}
首先,您应该对查询中使用的变量使用mysql_fetch_assoc()
检查列名是否正确编写,您应该这样做:
$query = "SELECT * FROM tbl_1 WHERE Email='$Email' AND IP='$ip'";
$Result = mysql_query($query) or die ('unable to run: ' .mysql_error());
if(mysql_num_rows($Result))
{
echo 'You have already entered this competition!';
}
else {
echo 'success';
}
因为可能您在mysql中用此电子邮件和ip记录了1条以上的记录,所以表示成功
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.