SELECT(带?和$ variable)返回空数组

时间:2013-08-02 08:01:00

标签: php mysql

抱歉,但我不明白问题出在哪里。

这有效

$query_select_date = "SELECT * FROM 2013Currencies WHERE DateOfCurrencyRate = '2001-03-23'";
$sql_select_date = $db->prepare($query_select_date);
$sql_select_date->execute();
$data_select_date = $sql_select_date->fetchAll(PDO::FETCH_ASSOC);

但这不起作用(获取空数组)

$query_select_date = "SELECT * FROM 2013Currencies WHERE DateOfCurrencyRate = ?";
$cdate = "'2001-03-23'";// or $cdate = "2001-03-23"; or $cdate = 2001-03-23; result is the same
$sql_select_date->execute($cdate);
$data_select_date = $sql_select_date->fetchAll(PDO::FETCH_ASSOC);

我想有一些错误,但无法理解在哪里。

3 个答案:

答案 0 :(得分:5)

您需要将数组传递给execute方法:

$sql_select_date->execute(array($cdate));

希望这有帮助

答案 1 :(得分:0)

您尚未将?占位符绑定到变量$cdate。插入此内容:

$sql_select_date->bindParam(1, $cdate);
在执行语句之前

编辑:lavavrik的解决方案实际上更短,所以我建议使用它而不是显式调用bind,只要没有必要。

答案 2 :(得分:0)

您必须将参数绑定到?

$sql_select_date->bindParam(1, $cdate);