PHP无法使用MySQL查询?

时间:2011-04-09 04:22:55

标签: php mysql

这是一个非常简单的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

2 个答案:

答案 0 :(得分:3)

问题是在DESC和你要传递给限制的论点之前没有顺序:

...DESC LIMIT 0,1

这需要:

...ORDER BY user DESC LIMIT 10

另外,我真的希望你的应用程序的安全性,你没有直接将表格中输入的参数直接传递给你的查询!请研究sql注入攻击和参数化。

答案 1 :(得分:0)

您的查询可能有问题。 尝试回显$query并在mysql控制台或phpmyadmin sql控制台上运行它。它会告诉你查询有什么问题