For the life of me I can't see why I'm getting this error:
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 '(components_ID, CompStep, MaterialQty, materials_ID) ' at line 2
SQL code variable:
$insertmat = "INSERT INTO components_has_materials
SET (components_ID, CompStep, MaterialQty, materials_ID)
VALUES ('$compId[0]', '$recStep', '$matQty', '$matCode')";
If statement from PHP code that is attempting to insert into the db:
if(mysqli_query($db, $insertmat)){
mysqli_close($db);
$addMatError = "Component material added";
}else{
echo 'ERROR: '. mysqli_error($db);
}
What's wrong with this bit of code?
Remove the SET
. You don’t use SET
when providing a columns list and a VALUES
list. This is explained in the MySQL documentation for INSERT
.
As shown in the docs, these are two (alternative) syntax options for an INSERT
query:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name [, partition_name] ...)]
[(col_name [, col_name] ...)]
{VALUES | VALUE} (value_list) [, (value_list)] ...
[ON DUPLICATE KEY UPDATE assignment_list]
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name [, partition_name] ...)]
SET assignment_list
[ON DUPLICATE KEY UPDATE assignment_list]