修正が必要ないくつかの事柄。まず、mysqliまたはPDOを使用する必要があるときにmysqlを使用します。次に、エスケープせずに投稿データを使用しています。第三に、この選択と更新は必要ありません。 1つのステートメントでそれを行うことができます。
$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));
ここで行っているのは、1つのプレースホルダーを使用して準備されたステートメントを作成することです。 :article
という名前を付けました ただし、?
のままにしておくこともできます。 代わりに。
次に、クエリが実行されるときに、パラメータを渡して不足しているビットを埋める必要があります。これが、最後のステップでarray(":article"=>$article_id)
を使用して行っていることです。
これは名前付きパラメーターなので、連想配列を使用します。または、 bindParam を呼び出した場合は、パラメーターなしでexecuteを呼び出すこともできます。 最初。