sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

El valor incremental en el script PHP no funciona

Algunas cosas que deben arreglarse. primero está usando mysql cuando debería usar mysqli o PDO. En segundo lugar, está utilizando datos de publicación sin escapar en absoluto. En tercer lugar, no necesita esta selección y actualización. Puedes hacerlo en una sola declaración.

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

Lo que estamos haciendo aquí es crear una declaración preparada con un marcador de posición. Lo hemos nombrado como :article pero podría haberse dejado como ? en su lugar.

Luego, cuando se ejecuta la consulta, debe completar los bits faltantes pasando parámetros. Eso es lo que estamos haciendo en el último paso con array(":article"=>$article_id)

Dado que es un parámetro con nombre, usamos una matriz asociativa. Alternativamente, podría haber llamado a ejecutar sin ningún parámetro si hubiera llamado a bindParam primero.