Не получается вставить данные через форму в mysql, используя PHP, скорее всего из-за даты, т.к. используя данный код для вставки строковых данных всё отрабатывало корректно. В базе данных поле date записано в формате DATE, в форме в html используется:
<input type="date" id="appointment" name="appointment">
В чем может быть проблема?
Сама функция:
function insert ($table, $params){
global $pdo;
$i = 0;
$coll = '';
$mask = '';
foreach ($params as $key => $value) {
if ($i === 0){
$coll = $coll . "$key";
$mask = $mask . "'" . "$value" . "'";
}else{
$coll = $coll . ", $key";
$mask = $mask . ", '" . "$value" . "'";
}
$i++;
}
$sql = "INSERT INTO $table ($coll) VALUES ($mask)";
$query = $pdo->prepare ($sql);
$query->execute();
dbCheckError($query);
}
Вызов:
<?php
include ("connection.php");
if (isset ($_POST['fname'])){
$fname = $_POST['fname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$type = $_POST['type'];
$date = date('Y-m-d', strtotime($_POST['appointment']));
$time = $_POST['time'];
$review = $_POST['review'];
$post = [
'fio' => $fname,
'email' => $email,
'phone' => $phone,
'type' => $type,
'date' => $date,
'time' => $time,
'description' => $review
];
insert ('vet_center.application', $post);
}
?>
foreach ($params as $key => $value)....=>$mask = implode(',',$params); $coll = implode(',',array_keys($params));– Владимир Клыков May 08 '22 at 18:40