【问题标题】:PHP, SQL limit query by php variablePHP,通过php变量的SQL限制查询
【发布时间】:2015-10-26 04:29:58
【问题描述】:

PHP代码定义变量sqlshowvalue

$sqlshowvalue = 5;
if(isset($_POST['showmore'])) {
     $sqlshowvalue += 5;
}

所以我连接到我的数据库,然后当我使用上面刚刚定义的变量运行下面的 SQL 查询时,

$result = mysqli_query($conn,"SELECT * FROM comments ORDER BY id DESC limit '$sqlshowvalue'");

所以我使用 mysqli 作为连接到我的数据库的方法,它给了我以下错误:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in ..

它给我这个错误的原因是因为我的查询中有问题,它必须做的是 $sqlshowvalue,因为如果我只用数字 5 替换 sqlshowvalue(如下所示),它可以正常工作:

$result = mysqli_query($conn,"SELECT * FROM comments ORDER BY id DESC limit 5");

所以我只是想知道我能做些什么来使限制的值是一个 PHP 变量,我可以更改它并更新页面。

【问题讨论】:

  • $sqlshowvalue 中删除'',比如DESC limit $sqlshowvalue");
  • 您应该始终检查$result,它是资源还是布尔值。如果查询失败,则返回FALSE
  • 在 SQL 中,在关键字 LIMIT 之后,需要一个数字而不是字符串,它必须被引用。

标签: php mysql mysqli


【解决方案1】:

你有没有尝试过

$result = mysqli_query($conn,"SELECT * FROM comments ORDER BY id DESC limit '$sqlshowvalue'");

$result = mysqli_query($conn,"SELECT * FROM comments ORDER BY id DESC limit ".$sqlshowvalue);

【讨论】:

    【解决方案2】:

    删除'' 仅使用$sqlshowvalue:-

    $result = mysqli_query($conn,"SELECT * FROM comments 
    ORDER BY id DESC limit $sqlshowvalue");
    

    对于整数值不需要''

    【讨论】:

    • 离题但是如果我想使用 javascript 变量而不是 php 变量 $sqlshowvalue 呢?我会使用 " 还是 ' ?
    • var a=5; document.write(a)"; ?>
    • 嗯,所以当我执行 echo $variable 时,它​​会显示正确的值,但是当我将它放入我的 sql 查询代码中时,它又给了我该错误
    • 这实际上解决了我的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多