Mysqli_query无理由地返回FALSE

时间:2014-09-11 10:43:41

标签: php mysql mysqli return

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

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

当我在Echo $ 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中工作。

请帮助!

3 个答案:

答案 0 :(得分:0)

$ sql 发生变量冲突, 改变这个,

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

as

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

答案 1 :(得分:0)

为什么你会遇到这个问题

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

解决方案

像这样设置$ sql:

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

答案 2 :(得分:0)

你把$ 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";

它会起作用。