您好,我这里有以下 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/