2016-09-14 76 views
-1
$sql = "UPDATE debtorsmaster SET name='" . $_POST['CustName'] . "', 
address1='" . $_POST['Address1'] . "', 
address2='" . $_POST['Address2'] . "', 
address3='" . $_POST['Address3'] . "', 

如何改變這種更新到所有行Sql - 如何更新所有行的列?

+0

像那樣(除了尾部的','),但最好通過使用準備好的語句並且實際執行:) –

+2

但是這會更新表中的所有行。這通常不是你想要的,但這就是你的查詢所要做的。 –

+1

如果沒有WHERE子句,您將更新所有行。 – jarlh

回答

0

因爲你不添加WHERE語句中的所有行會被更新。正如在上面的評論中指出的那樣,你有一個尾隨,導致查詢無效。

此外,建議使用預準備語句來防止SQL注入。

$statement = $db->prepare("UPDATE `debtorsmaster` SET `name`=?, `address1`=?, `address2`=?, `address3`=?"); 
$statement->bind_param("ssss", $customerName, $address1, $address2, $address3); 

$customerName = $_POST['CustName']; 
$address1 = $_POST['Address1']; 
$address2 = $_POST['Address2']; 
$address3 = $_POST['Address3']; 

$statement->execute(); 

編輯:上面的例子是基於mysqli。