我有這個PHP腳本:PHP MySQL查詢被執行兩次
$q = $dbc -> prepare("
UPDATE accounts
SET motivation = motivation-10
WHERE id = ?
");
$q -> execute(array($user['id']));
但它減去20,而不是十。當我在mysql中運行查詢時,它只會減去十個。爲什麼?
我有這個PHP腳本:PHP MySQL查詢被執行兩次
$q = $dbc -> prepare("
UPDATE accounts
SET motivation = motivation-10
WHERE id = ?
");
$q -> execute(array($user['id']));
但它減去20,而不是十。當我在mysql中運行查詢時,它只會減去十個。爲什麼?
您的$ q - > execute方法正在做一些愚蠢的事!查看或
可能是其在一個循環或
您有此相同的多個請求!
你準備好的陳述看起來很好。它應該從動機欄中的當前值中扣除10。
如果20被扣除,你很可能會調用它兩次。
確保您只調用一次,如果您從網頁調用此設置,請確保您沒有按兩次。
當您在同一頁面中編寫PHP代碼和html代碼時,就會出現問題。如果您是第一次單擊提交按鈕插入,那麼頁面將刷新。是嗎?然後再次執行代碼..解決方法是在執行形式向我們提供數據的語句之前檢查條件。
if($_POST['txtlocation']!='')
{
$sql = "INSERT INTO location(description) VALUES (:location)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':location', $_POST['txtlocation'], PDO::PARAM_STR);
$stmt->execute();
}
更多輸入請,我懷疑你只有這個在你的PHP?頁面,因爲沒有PHP標籤以及'$ dbc'永遠不會被初始化等等,所以更多的上下文會很好。你如何調用腳本等 – stryba
你必須超過這個,因爲這段代碼沒有設置PDO對象或連接... –
是的我有,但這一切都在一個需求?沒有其他的東西呢? – cgwebprojects