抱歉,但我不明白问题出在哪里。
这有效
$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);
我想有一些错误,但无法理解在哪里。
答案 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);