Я пытаюсь обновить мою базу данных SQL несколькими SET. То, что я пытаюсь достичь, - это обновить запись клиента в таблице. Например, клиент может изменить свой адрес.UPDATE SQL база данных с несколькими наборами?
Вот мой код:
<?php
$con = mysql_connect("localhost","root","");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("floras", $con);
for ($i=count($_POST['id']); $i--;) {
$id = $_POST['id'][$i];
$custf = $_POST['fname'];
$custs = $_POST['sname'];
$custe = $_POST['email'];
$custp = $_POST['phone'];
$custm = $_POST['mobile'];
$custa1 = $_POST['add1'];
$custa2 = $_POST['add2'];
$custt = $_POST['town'];
$custc = $_POST['county'];
$custpc = $_POST['postc'];
$sql="UPDATE tbl_customer SET
customer_forename=$custf,
customer_surname=$custs,
customer_email=$custe,
customer_phone=$custp,
customer_mobile=$custm,
customer_address1=$custa1,
customer_address2=$custa2,
customer_town=$custt,
customer_county=$custc,
customer_postcode=$custpc
WHERE customer_id=$id";
}
if (!mysql_query($sql,$con)){
die('Error: ' . mysql_error());
}
mysql_close($con);
?>
Очевидно, что это все было отправлено через пост и $ _POST переменные установлены в другую переменную перед командой SQL.
Когда я открываю страницу, ошибка я получаю:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1, customer_address2=Address 2, customer_town=Town, customer_county=County, cust' at line 1
Любая помощь?
Спасибо всем!
Ваши строки должны быть завернуты в кавычках, и этот незаконный характер не должен быть там '>' 'customer_surname' –
Вы не должны конкатенации пользовательского ввода в отчетности SQL. Вместо этого используйте подготовленные инструкции, чтобы предотвратить использование SQL-инъекций. –