为什么我的 "where condition" with numeric 不起作用?

Why my "where condition" with numeric is not working?

我正在与 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 中带有 "inscription" 的所有条目。 另一方面:

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

完全 returns 条目在 cm_name 中具有 "inscription" 并且 "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() 中有效...

":specific_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->bindValue(':specific_date', $date, PDO::PARAM_INT);
$prepare->execute();

修复了整个问题。 谢谢大家的回答。