php - mysql_fetch_array 不工作

标签 php mysql

此代码可以在我的计算机上运行,​​但是当我在网络托管服务商的服务器上运行它时,却无法运行。即使我使用了正确的密码,输出也是“密码或电子邮件不正确”。我以为我的密码有误,但代码不会在 while 循环的顶部输出 $r['email'] 或 $r['passwordHash'] 。如果我在 $sql 上使用 mysql_result,我会取出数据,因此 mysql_fetch_array 一定会发生一些奇怪的事情。我是否在这里遗漏了一些东西,或者这更可能是我应该与主机的支持人员解决的独特问题?

$query = "SELECT * FROM users WHERE user='$email'";
$sql = mysql_query($query);
    while($r = mysql_fetch_array($sql)) {
        echo $r['email'];
        echo $r['passwordhash'];

        if($passwordHash == $r['passwordhash']) {

            $_SESSION['user_id'] = $email;
            echo "started session";
        }
        else {
            echo "Incorrect password or email";
        }       
    }

最佳答案

使用$sql = mysql_query($query) or die (mysql_error())来检查查询是否有问题。

或者,您可以尝试 mysql_fetch_assoc (因为我看到您最常使用关联数组),以排除 mysql_fetch_array 可能的“错误”(我对此表示怀疑,但您可以尝试一下)。

并检查$email不为空。如果它通过清理函数传递(在放入查询之前应该如此),请查看该函数是否实际上返回了一个值,或者只是 NULL 或一个空字符串。

顺便说一句,你为什么要使用 while 循环?您是否应该使用同一电子邮件地址获取多个记录(和密码)?

关于php - mysql_fetch_array 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4971744/

相关文章:

php - 限制 post_meta 中的字符(wordpress)

php - {$variable} 在 PHP 中如何工作?

php - 在 Eclipse 中下载 SVN 的 SQL 架构

mysql - 如何为 Rails 应用程序使用 2 个数据库服务器

Php 完全没有从数据库中提取任何内容

php - 使用扩展 webp 让 imagick 与 docker 一起工作

javascript - 选择单选按钮后的文本输入字段

php - 使用 SimpleXML 获取属性和值

mysql - 在以下给定条件下从选择查询中获取最新更改

php - 如何摆脱多个 while 循环并更好地显示结果