1

我正在创建一个登录 php 脚本,该脚本使用一个名为 users 的表连接到一个 mysql 数据库,该表包含一个用户列表。我遇到了看起来像空集或 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>';
    }
?>
4

2 回答 2

0

因为您在检查连接时没有传递 $cxn变量:

改变这个:

if (mysqli_connect_errno()){  

至:

 if (mysqli_connect_errno($cxn)){ 
于 2013-11-04T17:12:16.140 回答
0

我刚刚注意到这一点,但您有以下内容:

$email = ($_POST['username']);

这应该很简单:

$email = $_POST['username'];

另外,尝试像这样编写查询:

$query = "SELECT * FROM `users` WHERE `user_email` = '".$email."' AND `user_pass` = '".$pw."'";
于 2013-11-05T22:27:29.180 回答