2011-04-09 59 views
0

这是一个非常简单的MySQL查询,我总是使用,但不知何故,我的一个网站脚本,它只是不起作用。不只是在网页上的一个地方,但包括登录和内容拉动的多个区域。我检查了一切,包括,如果我有我的网站连接到MySQL数据库服务器的正确与否(因为登记工作,但登录不)我做了一个快速测试,看看它是否工作正常:PHP不适用于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) {   
[email protected]_result($result,$i,"user"); 
[email protected]_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

哇,这个代码有太多的错误。你不仅[错误地存储密码](http://blog.moertel.com/articles/2006/12/15/never-store-passwords-in-a-database),你最好不要[Bobby Tables ](http://bobby-tables.com/)从未注册过帐户。 – 2011-04-09 04:31:07

回答

0

也许有什么不对您的查询。 尝试回显$query并在mysql控制台或phpmyadmin sql控制台上运行它。它会告诉你什么是错与您的查询

3

的问题是没有订单由您传递限制DESC和前面的参数:

...DESC LIMIT 0,1 

这必须是:

...ORDER BY user DESC LIMIT 10 

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