sql >> Databasteknik >  >> Database Tools >> phpMyAdmin

Inkrementerande värde i PHP-skript fungerar inte

Några saker som måste fixas. först använder du mysql när du ska använda mysqli eller PDO. För det andra använder du inläggsdata utan att komma undan alls. För det tredje behöver du inte välja och uppdatera. Du kan göra det i ett enda uttalande.

$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 här är att skapa ett förberett uttalande med en platshållare. Vi har döpt den till :article men det kunde ha lämnats som ? istället.

Sedan när frågan exekveras måste du fylla i de saknade bitarna genom att skicka in parametrar. Det är vad vi gör i det sista steget med array(":article"=>$article_id)

Eftersom det är en namngiven parameter använder vi en associativ array. Alternativt kunde du ha anropat execute utan några parametrar om du hade anropat bindParam först.



  1. SQL Server Management Studio Logins Dialog saknas

  2. Powershell:SQL Server Management Studio Script Generator

  3. Hur man exporterar alla databaser med phpmyadmin

  4. mysql:DELIMITER syntaxfel på rad 1