Не работатет форма обратной связи php+sql

Где я мог ошибиться? Вроде делал правельно, но данные не приходят в БДphp[![][![1]]2]3


Ответы (1 шт):

Автор решения: Borislav

В вашем случае, код не выполняется по двум причинам, SQL-синтаксис запроса INSERT не верен, по доке: INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);, а во вторых, в базе поля не nullable, и в таком формате запросы выполнять нельзя, в худшем случае, если бы в базе поля ж были nullable, то вы бы получили 4 записи, аля: id: 0, name: Vasya, остальные поля null; id: 1, tel: 54643543, null, null; и тп., это можно обойти, если дополнительным запросом взять последний вставленный id и продолжить запросы уже с условием WHERE id = $db->getLastInsertId().


 Решение: 

 $query = "INSERT INTO `feedback` (id, name, phone, email, product) VALUES (null, :name, :phone, :email, :product)";
 $msg = $conn->prepare($query);
 $msg->execute([
     'name'    => $_POST['name'],
     'phone'   => $_POST['tel'],
     'email'   => $_POST['email'],
     'product' => $_POST['product']
 ]);

Код не проверял, но смысл думаю ясен.

→ Ссылка