sql >> データベース >  >> RDS >> Mysql

日付に基づいて最新の5行を選択します

    <?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(); ?>
    

    編集

    コードが期待どおりに機能することを確認したら、エラーメッセージをエコーし​​ないことをお勧めします。ただし、プレーンテキストを単純に使用したい場合は、これを行うことができます...

    これを接続ブロックに追加できます...

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

    クエリブロックを変更することもできます...

    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;
    }
    

    繰り返しになりますが、エラーがエコーされないようにすることをお勧めします。エラーチェックをのみ使用する デバッグ用。



    1. PostgreSQLでのAtanh()のしくみ

    2. 日付間隔で複数の列をグループ化して取得

    3. テーブル名が可変であるMySQLから選択する方法

    4. Oracleのifステートメントのクエリを更新します