我创建了一个登录php脚本,该脚本连接到一个mysql数据库,其中包含一个名为users的表,其中包含一个用户列表。我遇到了一个空集或mysql错误。
我已经包含了一个连接错误回显和一个查询回显,并且该脚本正在回显后一个错误,该错误为我提供了查询字符串。我在phpMyAdmin中运行这个确切的查询并得到我期望的结果(它返回用户)。
为什么要死?
$ cxn是在登录页面上定义的,该页面将此帖子调用到此页面
$pass = addslashes($_POST['password']);
$email = addslashes($_POST['username']);
$pw = md5($_POST['password']);
$query = "SELECT * FROM `users` WHERE (`user_email`='$email' AND `user_pass`='$pw')" ;
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($cxn,$query) or die(mysqli_error($cxn)."Query= ".$query);
我离开了第一个版本。这是当前的化身,具有相同的结果。
<?php
$email = ($_POST['username']);
$pw = md5($_POST['password']);
$query = "SELECT * FROM `users` WHERE (`user_email`='$email' AND `user_pass`='$pw')" ;
if (mysqli_connect_errno($cxn)){ //remove later
echo "Failed to connect to MySQL: " . mysqli_connect_error();
} //to here
$result = mysqli_query($cxn,$query) or die(mysqli_error($cxn)."Query=".$query);
echo '<hr>';
echo $result;
while($row = mysql_fetch_array($result)){
echo $row['user_email'];
echo '<hr>';
echo $row['user_pass'];
echo '<hr>';
echo $row['user_fname'];
echo '<hr>';
}
?>
答案 0 :(得分:0)
因为您在检查连接时没有传递$cxn
变量:
改变这个:
if (mysqli_connect_errno()){
为:
if (mysqli_connect_errno($cxn)){
答案 1 :(得分:0)
我刚注意到这一点,但你有以下内容:
$email = ($_POST['username']);
这应该是简单的:
$email = $_POST['username'];
另外,尝试编写这样的查询:
$query = "SELECT * FROM `users` WHERE `user_email` = '".$email."' AND `user_pass` = '".$pw."'";