Небольшой код, поиск по полю типа TIMESTAMP:
$a = '2007-08-09 01:00:00';
$b = '2007-08-09 08:00:00';
$st = $pdo->prepare('set profiling=1');
$st->execute();
$st = $pdo->prepare('SELECT `mytime` FROM `date` WHERE `mytime` BETWEEN a=:a AND b=:b ');
$st->bindParam(':a', $a, PDO::PARAM_STR);
$st->bindParam(':b', $b, PDO::PARAM_STR);
$st->execute();
$RES = $st->fetchAll();
Прямой запрос в БД вида
SELECT `mytime` FROM `date` WHERE `mytime` BETWEEN '2007-08-09 01:00:00' AND '2007-08-09 08:00:00'
работает отлично но:
1) Как включить профайлинг set profiling=1 что бы посмотреть запрос сам, надо в этом же запросе что ли как-то команду посылать, профайлинг не заработал у меня так
2) По самому запросу ошибка SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='2007-08-09 01:00:00' AND b='2007-08-09 08:00:00'' at line 1
Я не могу понять что конкретно ему не нравится в данном запросе
3) Вопрос по PDO::PARAM_STR пробовал в других рабочих запросах этот параметр не указывать, например так $b->bindParam(":email",$email); и всё работает, тогда он нужен, не нужен? Понятно что в нём указывается тип данных (строка, число, булевое и т.д.)