Как я могу исправить этот SQL-запрос, чтобы проверить, была ли дата старше фактической и истекла и может быть удалена?
Я пробовал с этим кодом, но кажется, что он не работает
<?php
$date = new DateTime();
$d = $date->format('Y-m-d');
$stmt = $this->db->prepare("DELETE FROM test_table WHERE _out = ? AND _out <= {$d}");
$stmt->execute(array($d));
?>
Я также попытался с этим запросом, но когда вызов ajax сделан на контроллер, кажется, что он не работает
$stmt = $this->db->prepare("DELETE FROM reservations WHERE check_out <= {$d}");
<?php
$date = new DateTime();
$d = $date->format('Y-m-d');
$stmt = $db->prepare('DELETE FROM reservations WHERE check_out <= :out');
$stmt->bindValue(':out', 1, SQLITE3_TEXT);
$stmt->execute();
?>
Использовать? для значения замены и передать valur в методе выполнения.
После ознакомления с документацией SQLite я обнаружил, что лучший способ достичь моей задачи - использовать функцию date()
внутри запроса. Я не слишком опытен с этим типом базы данных. Итак, вот как я исправил проблему
<?php
$stmt = $this->db->prepare('DELETE FROM test_table WHERE _out <= date()');
$stmt->execute();
?>
PDO
с драйвером SQLite 3 обрабатывает этот тип запросов иначе, чем традиционный mysqli, спасибо за поддержку