我正在使用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()...
中工作答案 0 :(得分:0)
“:specific_date
”是一个字符串,您想要调用变量$date
。它们是不同的东西,所以它们会产生不同的结果。
答案 1 :(得分: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();
修复了整件事。 谢谢你的答案。