php - 根据日期选择最近的 5 行

标签 php mysql pdo

我有一段时间没有接触 PHP,并试图在我的数据库中选择 5 个最近的条目并将它们打印到屏幕上。

我看到不再推荐使用 mysql 命令,而是使用 PDO->mysql。

我的查询是这样的:

SELECT id,title,date,author FROM table ORDER BY date DESC LIMIT 5;

我假设我必须将值放入一个数组并创建一个循环并输出结果。

<?php
$db = new PDO('mysql:dbhost='.$dbhost.';dbname='.$dbname, $user, $pass);

while () {
  print($title[$i], $date[$i], $author[$i]);
  $i++
}

$db = null;

?>

我一直在用上面的代码填补空白。

更新:$db = new PDO.... 行报告错误消息:

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] Can't connect to local MySQL server through socket... in /var/...

确认已安装并启用 PDO。我在服务器上的其他网络应用程序可以正常连接到同一个远程 mysql 服务器。

最佳答案

<?php
$host = 'localhost'; $db = 'db-name'; $user = 'db-user'; $pw = 'db-password';
$conn = new PDO('mysql:host='.$host.';dbname='.$db.';charset=utf8', $user, $pw);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>

<?php
$sql = "SELECT id,title,date,author FROM table ORDER BY date DESC LIMIT 5";
$query = $conn->prepare($sql);
$query->execute();
$row = $query->fetch(PDO::FETCH_ASSOC);
$totalRows = $query->rowCount();
?>

<?php do {
// print your results here ex: next line
echo 'Title: '.$row['title'].' Date: '.$row['date'].' Author: '.$row['author'].'<br>'; 
} while ($row = $query->fetch(PDO::FETCH_ASSOC)); ?>

不要忘记关闭和释放资源

<?php $query->closeCursor(); ?>

编辑

一旦您确认您的代码按预期运行,我建议您不要回显错误消息;然而,如果你只想使用纯文本,你可以这样做......

您可以将其添加到您的连接 block 中...

if ($conn->connect_error) {
    die("Database Connection Failed");
    exit;
}

您还可以更改查询 block ...

try {
    $sql = "SELECT id,title,date,author FROM table ORDER BY date DESC LIMIT 5";
    $query = $conn->prepare($sql);
    $query->execute();
    $row = $query->fetch(PDO::FETCH_ASSOC);
    $totalRows = $query->rowCount();
} catch (PDOException $e) {
    die("Could not get the data you requested");
    exit;
}

同样,建议不要回显错误。使用错误检查进行调试。

关于php - 根据日期选择最近的 5 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33337040/

相关文章:

php - 如何使用 .htaccess 指向目录以加载索引

php - 从数据库中选择所有数据并使用 PHP 手动过滤

java - 插入记录时在 JDBC Java 中出错

c# - sql语法错误?在我的 c# img url 字符串中

python - Pandas Dataframe NaN 值替换为无值

php - 将 HTTP POST JSON 参数发送到 PHP 页面 - iOS

php - 在 MySQL 表中查找新条目

php - PDO 准备好的语句不执行任何操作

php - PDO::fetchAll 不适用于 MySQL 存储过程

php - PDO 数据库抽象层,在一个请求中具有多个查询