0

对不起,但我不明白问题出在哪里。

这有效

$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);

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

4

3 回答 3

5

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

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

希望这可以帮助

于 2013-08-02T08:05:15.093 回答
0

您尚未将?占位符绑定到变量$cdate。插入这个:

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

在执行语句之前。

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

于 2013-08-02T08:05:12.863 回答
0

您必须将参数绑定到?

$sql_select_date->bindParam(1, $cdate);
于 2013-08-02T08:06:22.687 回答