【问题标题】:pdo select latest from tablepdo 从表中选择最新的
【发布时间】:2013-10-19 15:40:58
【问题描述】:

我的 Mysql 数据库中有这段代码要显示。

class cast {
public function fetch_all(){
    global $pdo;
      $query = $pdo->prepare("SELECT * FROM podcast limit 1");
      $query->execute();
return $query->fetchAll();
              }

此代码确实根据 LIMIT 1 位仅显示 1 个结果。

但这显示了我的第一篇文章。

我的帖子有一个名为 cast_id 的数字 ID

如何让上面的代码显示最新添加的内容(例如 cast_id 中的最高数字)而不是第一个?

请帮忙。

谢谢。

【问题讨论】:

  • 在哪里添加 fred?
  • 尝试将$query->fetchAll(); 更改为$query->lastInsertId(); 但同样,请阅读该功能的手册以熟悉它。
  • 我有阅读障碍,无法阅读该页面。我喜欢通过例子而不是 gobuldigoop 单词来学习。

标签: php mysql pdo content-management-system


【解决方案1】:

试试类似的东西

class cast {
public function fetch_all(){
    global $pdo;
      $query = $pdo->prepare("SELECT * FROM podcast ORDER BY cast_id DESC LIMIT 1");
      $query->execute();
return $query->fetchAll();
              }

这应该获取最新的。

【讨论】:

  • 这没有返回任何结果
  • @kevstarlive 它不应该带来任何结果,而是向您展示您必须自己学习的基本操作
  • @kevstarlive 正是@YourCommonSense 刚才所说的。
  • @dbh 不,不会获取将触发 MySQL 错误的最新消息...限制 1 应该在 ORDER BY ... DESC 之后
  • @RaymondNijland 谢谢你,完全看过去了:/
【解决方案2】:

请查看http://www.php.net/manual/en/pdo.lastinsertid.php

您需要返回 $pdo->lastInsertId();执行插入后

【讨论】:

    【解决方案3】:

    您可以像这样使用 order by 子句:

    class cast {
    public function fetch_all(){
        global $pdo;
          $query = $pdo->prepare("SELECT * FROM podcast order by cast_id desc limit 1");
          $query->execute();
     return $query->fetchAll();
              }
    

    检查SELECT Syntax

    【讨论】:

    • @RaymondNijland 您对错误的看法是正确的,但我没有复制 dbh。下次在指责人之前检查答案的时间和修订历史。我在 dbh 前 10 秒回答了。
    • 我的错误我将删除评论,我不知道该怎么做检查我认为我看不到的修订历史..
    猜你喜欢
    • 2020-07-19
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多