I'm new in PDO, writing an update query:
$sql = "UPDATE `users`
SET(`uname` = :uname,
`role` = :role,
`fname` = :fname,
`email` = :email,
`mobile1` = :mobile1,
`mobile2` = :mobile2,
`education` = :education,
`division` = :division,
`district` = :district,
`sub_district` = :sub_district,
`address` = :address,
`looking_for` = :looking)
WHERE `id` = :id";
//$sql = "UPDATE `users` SET(`uname`=?,`role`=?,`fname`=?,`email`=?,`mobile1`=?,`mobile2`=?,`education`=?,`division`=?,`district`=?,`sub_district`=?,`address`=?,`looking_for`=?) WHERE `id`=?";
$st = $conn->prepare($sql);
//$res['sql'] = $st->queryString;
$params = array(
':uname' => $uname,
':role' => $role,
':fname' => $fname,
':email' => $email,
':mobile1' => $mobile1,
':mobile2' => $mobile2,
':education' => $edu,
':division' => $division,
':district' => $district,
':sub_district' => $sub_district,
':address' => $address,
':looking' => $looking,
':id' => $id
);
//$res['params'] = $params;
$r = $st->execute($params);
And getting:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(
uname
= '[email protected]',role
= '2',fname
= 'A full Name',
Can anybody tell me what's wrong in my code?
Here is my table structure:
Remove brackets around SET
part:
$sql = "UPDATE `users`
SET `uname` = :uname,
`role` = :role,
`fname` = :fname,
`email` = :email,
`mobile1` = :mobile1,
`mobile2` = :mobile2,
`education` = :education,
`division` = :division,
`district` = :district,
`sub_district` = :sub_district,
`address` = :address,
`looking_for` = :looking
WHERE `id` = :id";
Check UPDATE syntax
:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With