这是一个非常简单的MySQL查询,我总是使用它,但不知何故,对于我的一个网站脚本,它只是不起作用。不仅适用于网页中的一个位置,还包括多个区域,包括登录和内容提取。我检查了一切,包括我的网站是否正确连接到MySQL数据库服务器(因为寄存器工作但登录没有)我做了一个快速测试,看看它是否正常工作:
$usrn=$_POST['username'];
$pswd=$_POST['password'];
$query = "SELECT * FROM users WHERE user='$usrn' AND password='$pswd' DESC LIMIT 0,1";
$result = mysql_query($query);
$i=0;
while ($i < 1) {
$usr=@mysql_result($result,$i,"user");
$psw=@mysql_result($result,$i,"password");
echo $usrn."|".$usr."|".$pswd."|".$psw;
$i++;
}
在此脚本中,它将输出如下内容:
username||password|
这意味着$ usr和$ psw上没有任何内容可以输出,这通常可以在我的其他网站上使用。
另外,当我包括以下内容时:
$num = mysql_numrows($result);
它会给我一个错误信息:
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /index.php on line 906
答案 0 :(得分:3)
问题是在DESC和你要传递给限制的论点之前没有顺序:
...DESC LIMIT 0,1
这需要:
...ORDER BY user DESC LIMIT 10
另外,我真的希望你的应用程序的安全性,你没有直接将表格中输入的参数直接传递给你的查询!请研究sql注入攻击和参数化。
答案 1 :(得分:0)
您的查询可能有问题。
尝试回显$query
并在mysql控制台或phpmyadmin sql控制台上运行它。它会告诉你查询有什么问题