PHP 不能与 MySQL 查询一起使用?

标签 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

最佳答案

问题是 DESC 之前没有 order by 以及您传递给 limit 的参数:

...DESC LIMIT 0,1

这需要是:

...ORDER BY user DESC LIMIT 10

另外,为了您应用程序的安全,我真的希望您不要像这样直接将输入的参数从表单直接传递给您的查询!请研究sql注入(inject)攻击和参数化。

关于PHP 不能与 MySQL 查询一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5602857/

相关文章:

php - 如何从传递给 php 查询请求的 jquery 获取 VAR

php - php 推荐函数的奇怪行为

java - 使用 jComboBox 从数据库中过滤 jTable 数据

mysql - 找不到工件 mysql :mysql-connector-java:

php - 我想按最近的数字排序

php - 通过 PHP/Perl 在用户浏览器中显示 PDF 文件

php - 将日期从一种格式转换为另一种格式

php - 如何为centos安装特定的包和版本

php - CodeIgniter set_value() 不工作?

php - SQL,将 varchar(255) 转换为 mediumint