[英]PHP prepared statement update form
我將這個問題分成幾段以便於參考。
我有一個帶有按鈕的網站,該按鈕將數據庫中的當前數字加1。
我現在使用了“更新”形式,以便加上數據庫中的數字。 我使用准備好的語句來做到這一點:
<?php require_once('connectvars.php'); $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if (mysqli_connect_errno()) { echo 'Cannot connect.' . mysqli_connect_error(); exit(); } if ($stmt = $mysqli->prepare('UPDATE `javascriptbutton` SET `clicks`=? WHERE `id`=?')) { $stmt->bind_param('ii', $clicks, $id); $clicks = $_POST['clicks'] + 1; $id = 1; $stmt->execute(); $stmt->close(); } else { echo 'Woops, something went wrong.: ' . $mysqli->error; }
?>
當用戶按下html中的按鈕時,它將調用包含Ajax的腳本,該腳本引用了上面的php腳本。
每次按下該按鈕時,此php文件都必須從id == 1的數據庫“ clicks”列中獲取當前的“ clicks”,並將其加1,然后將其重新插入數據庫。
我一直在研究和研究我的代碼,我可以得出結論,這與以下內容有關:
$ clicks = $ _POST ['clicks'] + 1;
$ _POST ['clicks']應該是數據庫中的當前數字,並加上1。
問題:是否必須創建一個選擇表單才能使當前點擊從數據庫中獲得? 或者,我如何才能將當前的點擊次數加1,然后將新的數字放回數據庫中,直到下一次有人按下按鈕?
如果您想加深5個步驟中的任何一個,請告訴我。
您可以使用:
$mysqli->prepare("UPDATE `javascriptbutton` SET `clicks`=`clicks`+1 WHERE `id`=?")
編輯完整代碼:
if ($mysqli->prepare("UPDATE `javascriptbutton` SET `clicks`=`clicks`+1 WHERE `id`=?")) {
$stmt->bind_param('i', $id);
$id = 1;
$stmt->execute();
$stmt->close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.