2016-09-14 2 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(); 

EDIT: Вышеприведенный пример основан на mysqli.

Смежные вопросы