sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Stigende værdi i PHP-script virker ikke

Et par ting, der skal rettes. først bruger du mysql, når du skal bruge mysqli eller PDO. For det andet bruger du postdata uden at undslippe overhovedet. For det tredje behøver du ikke denne valg og opdatering. Du kan gøre det i en enkelt erklæring.

$query = "UPDATE tinyblog SET views = views + 1 WHERE id = (SELECT id FROM tinyblog where id=:article)"
$db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
$stmt = $db->prepare($query);
$stmt->execute(array(":article"=>$article_id));

Det, vi gør her, er at lave en forberedt erklæring med én pladsholder. Vi har navngivet den som :article men det kunne have været efterladt som ? i stedet.

Så når forespørgslen er udført, skal du udfylde de manglende bits ved at indsætte parametre. Det er det, vi gør i det sidste trin med array(":article"=>$article_id)

Da det er en navngivet parameter, bruger vi en associativ matrix. Alternativt kunne du have kaldt execute uden nogen parametre, hvis du havde kaldt bindParam først.



  1. Hvordan oprettes forbindelse til din Prod/Dev-database ved hjælp af phpMyAdmin?

  2. phpmyadmin udsender en fatal fejl for PMA_DBI_num_rows()

  3. SQL-forbindelse til localhost

  4. Sådan bruger du Sum og Inner Deltag i en slettesætning og føj en tredje tabel til den