MS Access中有一个数据库,准备(存储)名称为 testQuery :
PARAMETERS tour Number;
SELECT * FROM Tours WHERE ID = tour;
我正在尝试在PHP中运行查询并传递参数,如下所示:
// ..connect
$tour = 1;
$sth = $db->prepare("select * from testQuery");
$sth->bindParam(':tour', $tour, PDO::PARAM_INT);
$sth->execute();
我收到错误:
SQLSTATE[07002]: COUNT field incorrect: -3010 [Microsoft][Driver ODBC Microsoft Access]
Too few parameters. Required 1. (SQLExecute [-3010] at ext \ pdo_odbc \ odbc_stmt.c: 254)
如何将参数传递给预准备语句?怀疑准备好的查询不是由命令“select”引起的,也不是由其他东西引起的。
答案 0 :(得分:1)
在您当前的示例中,不会出现任何参数。您需要在查询中传递where
子句。您只需使用用户输入所在的占位符。例如,
$tour = 1;
$sth = $db->prepare("select * from testQuery WHERE ID = :tour");
$sth->bindParam(':tour', $tour, PDO::PARAM_INT);
$sth->execute();
另一种方法是
$tour = 1;
$sth = $db->prepare("select * from testQuery WHERE ID = ?");
$sth->execute(array($tour));
您可以在手册的页面http://php.net/manual/en/pdo.prepare.php上看到更多示例。