У меня есть БД с двумя соответствующими таблицами для ДАТ. , .
CREATE TABLE `dates` (
`did` int(11) NOT NULL,
`date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
и РАЗ. , .
CREATE TABLE `times` (
`tid` int(11) NOT NULL,
`time` time NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Я пытаюсь привязать значения даты и времени, полученные из HTML полей ввода даты / времени, к запросам, которые проверят, существует ли соответствующая дата / время в своей таблице. Если это не так, мой код выполняет другой запрос, который вставляет указанную дату / время в соответствующую таблицу.
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$date = isset($data['date']) ? $data['date'] : NULL;
$time = isset($data['time']) ? $data['time'] : NULL;
If(isset($date)){
$sqlDs = "SELECT * FROM `dates` WHERE date=:date";
$stDs = $conn->prepare ( $sqlDs );
$stDs->bindValue(':date', $date);
$stDs->execute();
$rDs = $stDs->fetch(PDO::FETCH_ASSOC);
If(! $rDs ){
$sqlDi = "INSERT INTO `dates` (date) VALUES (:date)";
$stDi = $conn->prepare ( $sqlDi );
$stDi->bindValue(':date', $date);
If ($stDi->execute()){
$dCode = $conn->lastInsertId();
$msg['temp'] = 'success';
$msg['body'] = $msg['body'].$date.' added to Dates.';
}Else{
$msg['temp'] = 'error';
$body = isset($msg['body']) ? $msg['body'] : '';
$msg['body'] = $body.'Date at '.$date.' didn`t work.';
}
}Else{
$dCode = $rDs['did'];
}
}
If(isset($time)){
$sqlTs = "SELECT * FROM `times` WHERE time=:time";
$stTs = $conn->prepare ( $sqlTs );
$stTs->bindValue(':time', $time);
$stTs->execute();
$rTs = $stTs->fetch(PDO::FETCH_ASSOC);
If(! $rTs ){
$sqlTi = "INSERT INTO `times` (time) VALUES (:time)";
$stTi = $conn->prepare ( $sqlTi );
$stTi->bindValue(':time', $time);
If ($stTi->execute()){
$tCode = $conn->lastInsertId();
$msg['temp'] = 'success';
$msg['body'] = $msg['body'].$time.' added to Times.';
}Else{
$msg['temp'] = 'error';
$body = isset($msg['body']) ? $msg['body'] : '';
$msg['body'] = $body.'Time for '.$time.' didn`t work.';
}
}Else{
$tCode = $rTs['tid'];
}
}
Не могу понять, как правильно связать эти значения с правильным форматом для MySQL. Никакой синтаксис strtotime () или что-либо еще, с чем я сталкивался до сих пор, не сработал. Возможно, я что-то упускаю? Я знаю, что должен сам разобраться, но я подхожу к концу этого проекта, и я так устал от борьбы с ним.
ОБНОВЛЕНИЕ: Я забыл выполнить запросы SELECT. Этот код работает сейчас.