php mysql_fetch_assoc 没有按预期工作

标签 php mysql

您好,我这里有以下 php 代码:

    $username = trim(mysql_real_escape_string($username));
    $password = md5(trim(mysql_real_escape_string($password)));
    $query = "SELECT user_level FROM user WHERE username='$username' AND password='$password'";
    $result = mysql_query($query) or die('query did not go through');
    if($result!=false){
        echo 'result is not false!<br/>';
        while($row = mysql_fetch_assoc($result)){
        echo 'another output to test'.$row['user_level'].'<br/>';
        }
    }

我知道数据库条目存在..它应该是“1”但由于某种原因它没有输出 1。我是否遗漏了一些我现在无法捕捉到的非常小的东西?

编辑:好的,我已将用户名更改为 user_level,但它没有收到任何信息。 while 循环中的 echo 甚至没有输出任何内容。

edit2:我也忘了提到当我输出 $result 时它说资源 id #5 所以我知道它从查询中得到了一些东西。

编辑 3:(2/10/2012):只是想让你们知道,获取用户名是错误的,我的意思是从用户表中的用户获取 user_level。

查询的输出是: 查询是这个值 SELECT user_level FROM user WHERE username='spankerer' AND password='246b8ae01899a116369ddcba84f425fd'

print_r($行);没有在 while 循环中显示。

编辑 4:忘记提及如果我从 cmd 执行 mysql 查询,我得到的 user_level 表显示 1 所以它是正确的。

最佳答案

你的选择查询应该是这样的

$query = "SELECT user_level, username FROM user WHERE username='$username' AND password='$password'";

编辑

也将您的查询回显为:

 $query = "SELECT user_level, username FROM user WHERE username='$username' AND password='$password'";
echo $query;

在数据库中运行相同的查询,看看它是否给你什么? 同样在while循环中首先做

 while($row = mysql_fetch_assoc($result)){
   print_r($row);
    }

看看输出是否与直接查询执行得到的输出相同。

关于php mysql_fetch_assoc 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9223350/

相关文章:

php - 计算重复项 WHERE id=?

mysql - Laravel 获取每个用户最新答案的计数,其中 Preferred = True

javascript - Base64上传图片问题

php - 通知 : Object of class PDOStatement could not be converted to int

php - 如何在 Laravel 中插入具有多个不同列的多行

PHP 文件未使用 jQuery/AJAX 触发

java - 启动时加载 SQL 数据

javascript - 下拉列表值不存储在数据库中

MySQL集合存储

php - Yii2 和默认值为 NULL 的浮点字段