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

変換中に間違っているのは何ですか

    prepare() execute()と一緒に行きます

    プリペアドステートメントは基本的に次のように機能します:

    1. 準備:SQLステートメントテンプレートが作成され、データベースに送信されます。パラメータ(「?」のラベルが付いている)と呼ばれる特定の値は指定されていません。例:

      INSERT INTO mtTable VALUES(?, ?, ?)

    2. データベースは、SQLステートメントテンプレートのクエリ最適化を解析、コンパイル、実行し、実行せずに結果を保存します

    3. 実行:後で、アプリケーションが値をパラメーターにバインドし、データベースがステートメントを実行します。アプリケーションは、さまざまな値を使用して、ステートメントを何度でも実行できます

    以下のコードで試してください

    <?php
    
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    
    $rowperpage = 3;
    $offset     = 0;
    
    // counting total number of posts
    $query = "SELECT count(id) AS allcount  FROM posts";
    $stmt  = $db->query($query)->fetchColumn();
    
    /******** The ABOVE QUERY LOOKS POINTLESS TO ME AS YOU NOT USING THE RESULTS FROM THAT QUERY*/
    
    // select first 3 posts
    
    $qry = "SELECT * FROM posts ORDER BY id ASC LIMIT ?,? ";
    $stm = $db->prepare($qry);
    $stm->execute(array($offset,$rowperpage));
    $results = $stm->fetchall(PDO::FETCH_ASSOC);
    
    if (count($results) > 0) {
    
        foreach ($results as $row) {
    
            $id           = $row['id'];
            $title        = $row['title'];
            $content      = $row['content'];
            $shortcontent = substr($content, 0, 160) . "...";
            $link         = $row['link'];
    
        }
    } else {
    
        echo "No records found";
    }
    ?>
    



    1. Mac10.8.5でmySQLのバージョンを確認してください

    2. php_oci8.dllを読み込もうとしているときの起動時のPHP警告

    3. PHPMySqlJQueryを使用してajaxドロップダウンメニューにデータを取得する

    4. 同じselectでの列エイリアスの使用がOracleとMysqlでサポートされていないのはなぜですか?