PDO и MySQL 'между'

Я пытаюсь заставить PDO работать с MySQL «между». Ниже мой код:

$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $start_date = date('Ymd H:i:s', mktime(0, 0, 0, 11, 1, 2009)); $end_date = date('Ymd H:i:s', mktime(23, 59, 59, 11, 30, 2009)); $STH = $DBH->prepare("SELECT * FROM `table` WHERE `start_date` BETWEEN ':start_date' AND ':end_date'"); $STH->bindParam(':start_date', $start_date, PDO::PARAM_STR); $STH->bindParam(':end_date', $end_date, PDO::PARAM_STR); $STH->execute(); var_dump($row); 

Возвращаемым является массив с '0' или 'NULL' для значений. Когда я жестко кодирую дату окончания, он действует так, как если start_date установлен в -1, перенастраивая мне все строки до end_date . Итак, что я здесь делаю неправильно?

Не переносите значения с помощью одной кавычки.

 $STH = $DBH->prepare("SELECT * FROM `table` WHERE `start_date` BETWEEN :start_date AND :end_date"); 

Не ставьте кавычки вокруг параметров:

 $STH = $DBH->prepare("SELECT * FROM `table` WHERE `start_date` BETWEEN :start_date AND :end_date");