SQL在phpMyAdmin中工作,但在网页脚本中返回错误的行数

SQL在phpMyAdmin中工作,但在网页脚本中返回错误的行数,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我有一个以前看起来有效的登录纸条,但现在对一些用户无效,包括一些以前有效的用户 SQL始终在phpMyAdmin中工作,但在某些用户的网页上,它总是返回零行。以下是出现问题的代码: $query_str = 'SELECT id, username, level_access, active FROM users WHERE username = "'; $query_str .= mysql_real_escape_string($uname).'"'; $query_str .= ' AND

我有一个以前看起来有效的登录纸条,但现在对一些用户无效,包括一些以前有效的用户

SQL始终在phpMyAdmin中工作,但在某些用户的网页上,它总是返回零行。以下是出现问题的代码:

$query_str = 'SELECT id, username, level_access, active FROM users WHERE username = "';
$query_str .= mysql_real_escape_string($uname).'"';
$query_str .= ' AND password = "'.mysql_real_escape_string($pwd).'"';
echo $query_str. "<br/>";

$result = mysql_query($query_str);
$num_result = mysql_num_rows($result);   
echo $num_result. "<br/>";
在我的网页中,无论有多少用户,它总是返回8行。如果有8、9或10个用户,则返回8行。我删除了用户,因此只有不到8个用户,但仍有8行返回到网页phpMyAdmin,每次都返回正确的数字


很明显,问题不在于代码。所以这超出了我的专业知识范围。是什么导致了这个问题?我该如何解决它?

您的MySQL缓存设置是什么?当数据库中的行数少于8行时,对我来说,返回8行似乎是在缓存查询的旧结果。您可以通过在
SELECT
语句后添加
SQL\u NO\u cache
来禁用缓存,将查询更改为
$query\u str='SELECT SQL\u NO\u cache id,username,level\u access,activefrom users'帮助?

您是否已连接到(您认为)被显式查询的数据库

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_select_db ('myDatabase' , $link);
然后您需要在查询中使用
$link
句柄

$result = mysql_query($query_str, $link);

我对缓存设置一无所知,但只是尝试了你的建议,仍然得到了8行。嗯……还有其他关于绕过缓存的建议,你可能会在那里找到一些有效的方法。我只是觉得我没有尝试打印行,这应该告诉我一些事情。我现在正在做。好的,它正在返回旧用户。看来缓存一定是问题所在。非常感谢。我会按照这些链接,并尝试这些解决方案。没问题,希望你得到它的工作。那里有一个关于刷新或重置缓存的链接,如果幸运的话,应该会对你有用。顺便说一句,如果您在phpmyadmin中输入变量名称“%query\u cache%”时显示变量,您可以看到当前的缓存设置,这可能有助于您搜索某些设置正在执行的操作。您确定PHP代码和phpmyadmin正在查看同一个数据库吗?您确定数据正确吗?有时候,一些微妙的事情,比如一个不正确的值,会把你的整个结果都抛出去。另外,尝试使用不同的数据库工具,例如PhpMyAdmin和MySQL工作台。但是我刚刚发现它连接到了这个查询的错误数据库。奇怪的是,只有这个查询连接到了错误的数据库,并且它的代码行与连接的代码行相同(即不是相同的代码行)。实际上,我在查询中没有使用$link。我已经将它添加到导致问题的链接中,并且得到了一个“not a valid MySQL Link resource”错误。请注意,尽管整个网站中的所有其他查询都正常工作,但仍然存在这种情况。@user1047397非常奇怪。。。您是否已将localhost替换为数据库的位置(如果不在默认端口上,则还替换了端口号。)mysql_user是否为有效用户,mysql_密码是否为该用户的密码?
$result = mysql_query($query_str, $link);