sql >> Database >  >> RDS >> Mysql

wat doe ik verkeerd tijdens het converteren?

prepare() hoort bij execute()

Voorbereide verklaringen werken in principe als volgt:

  1. Voorbereiden:Er wordt een SQL-instructiesjabloon gemaakt en naar de database verzonden. Bepaalde waarden worden niet gespecificeerd, parameters genoemd (aangeduid met "?"). Voorbeeld:

    INSERT INTO mtTable VALUES(?, ?, ?)

  2. De database parseert, compileert en voert query-optimalisatie uit op de SQL-instructiesjabloon en slaat het resultaat op zonder het uit te voeren

  3. Uitvoeren:op een later tijdstip bindt de toepassing de waarden aan de parameters en voert de database de instructie uit. De toepassing mag de instructie zo vaak uitvoeren als hij wil met verschillende waarden

probeer met onderstaande code

<?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. SQL-tabel bestaat niet

  2. De stap Unpivot gebruiken om een ​​tabel in tabelvorm te maken van een kruistabel

  3. export tabel naar csv op postgres

  4. Vergelijk data in MySQL