PDO MySQL LIMIT查询意外结果

问题描述 投票:0回答:1

我正在尝试显示文件列表并创建基本的分页系统。我坚持这一点,因为带有PDO的MySQL查询的输出与MySQL本身的输出不同。

这里是代码部分:

$sql = "SELECT * FROM libri ORDER BY bookname;";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

if ($row > 0) {
  // output data of each row

    $countStart = ($page-1)*$page;
    //Listing da database
    $sql = "SELECT * FROM libri ORDER BY bookname LIMIT 0,3";
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_ASSOC);

    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $book = $row["bookname"];
    $path = $host."/libreria/lib-folder/".$row["bookname"];
    $truepath = basename($path);
    $coverName = $truepath."-cover.png";
    $fileArr = explode('.', $book);
    $fileExt = strtolower(end($fileArr));

    echo "<a href='$truepath'>".$row["bookname"]."</a><br>";

困扰我的是,带有LIMIT的查询的行为方式与我在mysql上看到的方式不同:在具有相同查询的mysql CLI上,我得到了

+----+---------------------+
| id | bookname            |
+----+---------------------+
| 12 | book.pdf            |
|  1 | book2.pdf           |
| 13 | book3.pdf           |
+----+---------------------+

但是在网页上我只会打印

book2
book3

P.S。 :我仍然不确定为什么仅使用此看似错误的while语句而不是正确比较==来打印行的原因:

while($row = $stmt->fetch(PDO::FETCH_ASSOC))

我正在尝试显示文件列表并创建基本的分页系统。我坚持这一点是因为带有PDO的MySQL查询的输出与MySQL本身的输出不同。这是代码...

php mysql pdo
1个回答
0
投票

您一次获取before

© www.soinside.com 2019 - 2024. All rights reserved.