phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Incrementando o valor no script PHP não está funcionando


Algumas coisas que precisam ser corrigidas. primeiro você está usando mysql quando deveria estar usando mysqli ou PDO. Em segundo lugar, você está usando dados de postagem sem nenhum escape. Em terceiro lugar, você não precisa dessa seleção e atualização. Você pode fazer isso em uma única declaração.
$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));

O que estamos fazendo aqui é criar uma declaração preparada com um espaço reservado. Nós o nomeamos como :article mas poderia ter sido deixado como ? em vez de.

Então, quando a consulta é executada, você precisa preencher os bits ausentes passando parâmetros. Isso é o que estamos fazendo na última etapa com array(":article"=>$article_id)

Como é um parâmetro nomeado, usamos um array associativo. Alternativamente, você poderia ter chamado execute sem nenhum parâmetro se tivesse chamado bindParam primeiro.