在php中登录,在mysql\u查询中进行两次查询

在php中登录,在mysql\u查询中进行两次查询,php,mysql,Php,Mysql,我正在尝试用PHP创建一个投票系统。除了创建一个以“USER”和“PASS”作为字段的标准表来包含登录信息外,我还创建了另一个包含字段:“USER”和“CHECK”的表,其中“CHECK”是一个默认值为“0”的二进制INT。但当学生投票时,“检查”字段将更新为“1” 我设计的登录脚本首先检查“USER”和“PASS”中的一条记录,然后检查“USER”和“CHECK”表中的另一条记录,默认值为“0”,以允许投票。如果为“1”,则会重定向到“AlreadyVoted.htm”页面 <?php

我正在尝试用PHP创建一个投票系统。除了创建一个以“USER”和“PASS”作为字段的标准表来包含登录信息外,我还创建了另一个包含字段:“USER”和“CHECK”的表,其中“CHECK”是一个默认值为“0”的二进制INT。但当学生投票时,“检查”字段将更新为“1”

我设计的登录脚本首先检查“USER”和“PASS”中的一条记录,然后检查“USER”和“CHECK”表中的另一条记录,默认值为“0”,以允许投票。如果为“1”,则会重定向到“AlreadyVoted.htm”页面

<?php
session_start();
$_SESSION['StudentID']=$_POST['UserID'];

include 'db_conneck.php';

$studentid=mysql_real_escape_string($_POST['UserID']);
$userpass=mysql_real_escape_string($_POST['LogPass']);
$sql="SELECT * FROM user_login WHERE studentid='$studentid' and password='$userpass'";
$sql1="SELECT * FROM check_login WHERE studentid='$studentid' and check='0'";
$sql2="SELECT * FROM check_login WHERE studentid='$studentid' and check='1'";
$result=mysql_query($sql);
$result1=mysql_query($sql1);
$result2=mysql_query($sql2);
$count=mysql_num_rows($result);
$count1=mysql_num_rows($result1);
$count2=mysql_num_rows($result2);

if ($count==1 and $count1==1){
    header ("location:FirstVote.php");
}
else if ($count==1 and $count2==1){
    header ("location:AlreadyVoted.html");
}
else {
    echo "Information Not On Database";
}
exit()
?>


注意:mysql扩展已弃用,将来将被删除。

查询中存在问题请尝试回显查询,然后尝试在数据库中手动执行

您的查询返回的是布尔值false,而不是resource。

CHECK
是您应该通过倒勾来转义它

改用那些查询

 $sql1="SELECT * FROM check_login WHERE studentid='$studentid' and `check`='0'";
 $sql2="SELECT * FROM check_login WHERE studentid='$studentid' and `check`='1'";
注意:
我仍然感到惊讶的是,一些PHP程序员仍然在使用mysql_error()或将其与mysql_error()结合使用,或将其作为示例代码,黑客喜欢它,因为信息泄露

我认为使用
左连接将studentid上的两个表连接在一起会更容易,那么您只需要一个查询,而不需要3个。您的查询失败了。最好尽一切可能不使用
mysql\u*
,它已经被弃用了,并且它的使用已经有一段时间不被鼓励了。检查任何
mysql*
函数的任何文档页面,并阅读红色警告框@arbitter能否准确帮助我如何使用
左连接
查询函数?。。感谢您这里不再支持
mysql.*
函数,它们已经不再维护,将来也会维护。您应该使用或更新代码,以确保将来项目的功能。非常感谢。检查更正正在工作,但查询似乎不工作。有人能帮我介绍一下mysql查询中的左连接功能吗?
 $sql1="SELECT * FROM check_login WHERE studentid='$studentid' and `check`='0'";
 $sql2="SELECT * FROM check_login WHERE studentid='$studentid' and `check`='1'";