Почему мое условие «где»? с числовым не работает?

Я работаю с php5 + и MySQL.

Я не могу понять, почему моя операция не работает:

$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > :specific_date');
$prepare->execute(array(':specific_date' => $date));

С fetchAll это дает мне ВСЕ записи с надписью в cm_name.
С другой стороны :

$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > '.$date.' ');
$prepare->execute();

Прекрасно возвращает записи с «надписью» в cm_name и с «cm_values», превосходящим $ date …

Я не могу понять, что я делаю не так?

Спасибо за вашу помощь, и простите мой английский …

Редактировать : Я использую метку времени для хранения дат, поэтому $ date является числовым.

Изменить еще раз: как сказано в комментариях, есть проблема с форматом моего параметра. Что-то вроде

$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > :specific_date');
$prepare->bindParam(':specific_date', $date, PDO::PARAM_INT);
$prepare->execute();

работает … Так что теперь я должен получить, как заставить это работать в execute () …

-3

Решение

«:specific_date«является строкой, и вы хотите вызвать переменную $date, Они разные вещи, поэтому они дают разные результаты.

0

Другие решения

На самом деле,

$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > :specific_date');
$prepare->bindValue(':specific_date', $date, PDO::PARAM_INT);
$prepare->execute();

исправил все это.
Спасибо за ваши ответы, ребята.

0

По вопросам рекламы [email protected]