用戶檢索他們的產品列表,並將該列表顯示在帶有預先填充數量的文本框的頁面上。用戶可以更改這些數量,然後表單將這些數據發送到更新頁面。我使用下面的語句來執行數據庫更新..MySQL不會更新爲零作爲值
$sql = "UPDATE reservations SET quantity=? WHERE tableID= ?";
這完全適用於任何值,當用戶在文本框中放一個零,然後更新只是跳過這個值除並讓它在現有一。我已經直接進入數據庫,可以手動將值更改爲零,但沒有問題,但似乎是基於Web的聲明不起作用。它被設置爲INT,我也嘗試過VARCHAR,但沒有任何運氣。任何想法會導致sql語句忽略零(0)值?
完全更新代碼
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$conn = new PDO($dsn, $username, $password, $opt);
$sql = "UPDATE reservations SET quantity=? WHERE tableID= ?";
$stmt = $conn->prepare($sql);
foreach($_POST["Quantity"] as $id => $quantity) {
if ($quantity) $stmt->execute(array($quantity, $id));
}
請顯示如何將參數插入此查詢。 – Itay
您是否使用反引號或引號的值?如果它是一個整數,你不需要。 – Sablefoste
並且還給出該表的架構,即'desc reservations' –