【发布时间】:2012-01-14 15:05:06
【问题描述】:
所以我正在使用 PDO (ODBC) 访问 MSAccess 数据库。我正在尝试获取本周而不是过去 7 天的所有记录。这是我的查询:
SELECT *
FROM tblBilling
WHERE ((
Year(DateOfService) = Year(Date())
And DatePart("ww", DateOfService, 0) = DatePart("ww", Date(), 0)
))
ORDER BY DateOfService, TimeOfService
显然这在 MSAccess 中有效,但是当从 Web 应用程序中使用它时,我收到以下错误:
SQLSTATE[07002]: COUNT field incorrect:
-3010 [Microsoft][ODBC Microsoft Access Driver]
Too few parameters. Expected 1.
(SQLExecute[-3010] at ext\pdo_odbc\odbc_stmt.c:254)
我似乎无法弄清楚这一点。我一定是忽略了什么,我的大脑现在变成了糊状。我知道如果我删除DataPart,它将运行查询并且不返回错误,但是它不会做我需要它做的事情。
感谢大家的帮助!
根据要求提供额外代码:
try
{
$pdo = new PDO('odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq='.DB_NAME.';Uid=');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$myPDO = $pdo->prepare($query);
$myPDO->execute();
$result = $myPDO->fetchAll();
} catch(PDOException $e)
{
echo $e->getMessage();
}
【问题讨论】:
-
你能告诉我们你的代码吗?这是人们能够诊断您的问题的唯一方法。
-
我认为您不需要在
WHERE语句周围加上括号。