mySQL语句不在php内部工作

时间:2014-03-11 16:32:06

标签: php html mysql sql

我试图为我的网站做一个登录系统,我改变了它的实现方式并且它已经破坏了,每当我尝试使用正确的登录登录时它都无法带我到下一页,这是我的php:< / p>

<?php
//finds the correct database
$sql_link = mysqli_connect("localhost", "root" , "12buckle", "GameData");
if (mysqli_connect_errno())
{
    echo "Failed to connect to databse: " . mysqli_connect_error();
}
if (isset($_POST['Username']))
{
$username = mysql_real_escape_string($_POST['Username']);
$password = mysql_real_escape_string($_POST['Password']);
//checking to see if password and username can be found in student database
//loading in correct data
$login = mysqli_query($sql_link,"SELECT * FROM tblStudents WHERE    UserName='$username' AND Password='$password'");
if ($login['Password'])
{
    $_SESSION['name'] = $login['StudentFirstName'];
    $_SESSION['ClassID'] = $login['ClassID'];
    $_SESSION['ID'] = $login['StudentID'];
    header ("Location: index.php");
}
else
{
$login = mysqli_query($sql_link,"SELECT * FROM tblTeacher WHERE Username='$username' AND Password='$password'");
if ($login['Password'])
{
    $_SESSION['name'] = $login['TeacherSurname'];
    $_SESSION['title'] = $login['Title'];
    $_SESSION['ID'] = $login['TeacherID'];
    header ("Location: TeacherSide.php");
}
else
{
echo 'Login details incorrect';
}
}
}

另外,如果我昨晚运行它有帮助,我确定它有效,但我半醒,所以我可能一直在测试旧版本

2 个答案:

答案 0 :(得分:2)

你的逻辑是错误的。 mysql_query返回结果HANDLE。它不会返回任何实际数据。在检查实际数据之前,您需要先获取一行:

$result = mysqli_query($sql_link, "SELECT * FROM tblStduents ....");
if (mysqli_num_rows($result) > 0) {
   ... got a student record
   $row = mysqli_fetch_assoc($result);
   echo $row['StudentFirstName'];
} else {
   ... no student rows, repeat with teachers
}

答案 1 :(得分:0)

过去我遇到的问题是变量没有按照SQL语句中的方式正确读取。

请尝试Username='" . $username . "' AND,看看会发生什么。