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

Il valore incrementale nello script PHP non funziona

Alcune cose che devono essere sistemate. per prima cosa stai usando mysql quando dovresti usare mysqli o PDO. In secondo luogo, stai utilizzando i dati dei post senza alcuna evasione. In terzo luogo, non è necessario selezionare e aggiornare. Puoi farlo in una sola affermazione.

$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));

Quello che stiamo facendo qui è creare una dichiarazione preparata con un segnaposto. L'abbiamo chiamato :article ma avrebbe potuto essere lasciato come ? invece.

Quindi, quando la query viene eseguita, è necessario compilare i bit mancanti passando i parametri. Questo è ciò che stiamo facendo nell'ultimo passaggio con array(":article"=>$article_id)

Poiché è un parametro denominato, utilizziamo un array associativo. In alternativa avresti potuto chiamare execute senza alcun parametro se avessi chiamato bindParam prima.