繁体   English   中英

Mysqli_query无故返回FALSE

[英]Mysqli_query returns FALSE without reason

我正在创建分页脚本,由于某种原因mysqli_query返回FALSE。

$limit = "LIMIT " . ($pn - 1) * $itemsPerPage . "," . $itemsPerPage; 
            $sql = 'SELECT * FROM blogs ORDER BY BlogID DESC $limit';
            $query2 = mysqli_query($connection, $sql);    

当我回显$ limit时,它返回0,2,所以LIMIT WORKS,当我回显$ sql时,它返回:SELECT * FROM blogs ORDER BY BlogID DESC 0,2,由于某种原因,query2返回FALSE而不是true,因此我可以不在页面上打印我想要的东西。

while($row = mysqli_fetch_array($query2)){
                echo '<b style="font-size: 15pt; text-align: center">' . $row[3] . '</b><br/>
                <p style="text-align: justify"> ' . $row[4] . ' </p> <hr>';
            }

这是代码的另一部分...我不知道为什么这行不通,因为行:SELECT * FROM blogs ORDER BY BlogID DESC 0,2在phpMA中起作用。

请帮忙!

发生$ sql变量冲突,对此进行更改,

$sql = 'SELECT * FROM blogs ORDER BY BlogID DESC $limit';
            $query2 = mysqli_query($connection, $sql); 

$sqlnew = 'SELECT * FROM blogs ORDER BY BlogID DESC '.$limit;
            $query2 = mysqli_query($connection, $sqlnew); 

为什么要面对这个问题

$ limit不会转换为变量的相应值

像这样设置$ sql:

$sql = 'SELECT * FROM blogs ORDER BY BlogID DESC '.$limit;

您将$ limit变量放在''中,这意味着PHP不会解析它,因此查询是错误的。

http://php.net/manual/en/language.types.string.php#language.types.string.syntax.single上阅读更多内容

更改

$sql = 'SELECT * FROM blogs ORDER BY BlogID DESC $limit';

$sql = "SELECT * FROM blogs ORDER BY BlogID DESC $limit";

它会工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM