【发布时间】:2015-11-19 11:45:45
【问题描述】:
我用 PHP 编写了这段代码。
$result = mysqli_query($connection, "SELECT * FROM app WHERE" . $_REQUEST['filter'] . " ORDER BY " . $_REQUEST['sort']);
$output = array();
while($row = mysqli_fetch_array($result)) {
$record = array();
$record['app_id'] = $row['app_id'];
$record['app_name'] = $row['app_name'];
$output[] = $record;
}
我也想使用 LIMIT。
当我在..... " ORDER BY " . $_REQUEST['sort'] "LIMIT 3"); 使用 LIMIT 时
它给了我这个错误:
过滤器=1=1
排序 = 1=1
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in ....service.php on line 80
我该怎么做? 提前谢谢你
【问题讨论】:
-
您可以使用此代码进行 SQL 注入。如果
$_REQUEST['filter']是一个字符串,这个查询也是无效的。您是否尝试将limit添加到您的查询中?您还在这里错过了串联,$_REQUEST['filter'] " ORDER BY "所以我怀疑您没有使用错误报告/检查日志。 -
是的,我在这段代码的末尾使用了 LIMIT,但它不起作用
-
这不是 PHP 问题,您可以阅读更多关于 mysql 查询本身的信息:dev.mysql.com/doc/refman/5.7/en/select.html
-
您阅读我的全部评论了吗?你应该包括你尝试使用限制。
-
@Markomafs 他确实在这段代码中有 PHP 错误。