为什么我的 "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();
修复了整个问题。
谢谢大家的回答。
我正在与 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();
修复了整个问题。 谢谢大家的回答。