Php PDO odbc中的转义空白
我有一个需要连接的access数据库,它有一个名为[Received Projects]的表,在该表中,我们有名为[Assigned to]、[Assigned Date]和[Image Cnt]的字段。MS Access和odbc通常可以使用select语句,如:Php PDO odbc中的转义空白,php,pdo,odbc,whitespace,Php,Pdo,Odbc,Whitespace,我有一个需要连接的access数据库,它有一个名为[Received Projects]的表,在该表中,我们有名为[Assigned to]、[Assigned Date]和[Image Cnt]的字段。MS Access和odbc通常可以使用select语句,如: SELECT [Received Projects].[Assigned To], [Received Projects].[Assigned Date], [Received Projects].[Image Cnt] FROM
SELECT [Received Projects].[Assigned To], [Received Projects].[Assigned Date], [Received Projects].[Image Cnt]
FROM [Received Projects]
WHERE ([Received Projects].[Image Cnt])>0)
然而,我正在尝试用PHP连接PDO,它不喜欢方括号。它有点像这样:
$strSQL = 'SELECT "Assigned To", "Assigned Date", "Image Cnt"
FROM "Received Projects"
WHERE ("Received Projects"."Image Cnt")>0)';
除此之外,它抛出此错误,表示它不知道该表是什么:
PHP致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42P01]:未定义的表:7错误:关系“Received Projects”不存在
不知何故,我需要避开表名中的空白。双引号适用于列名,但不适用于表名。我尝试过单引号、双引号、反勾号和带有引号变体的方括号。开始怀疑这是否不可能。尝试下面的查询。其工作良好(已测试) 希望这能满足您的要求。:)
注意:请避免空白。最好使用驼峰命名约定。我以前尝试过反勾号,但出现了以下错误:[14-Nov-2014 01:44:45]PHP致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42601]:语法错误:7错误:语法错误位于或接近“
”第2行:从
收到的C:\....\index.php:111中的项目“^”。我想知道为什么它对你有效,但对我的机器无效。我接受了这个答案。我似乎在代码中出现了一些其他类型的错误,这些错误也无助于解决问题。因此,你提供了一个非常有用的答案。非常感谢。我有一种决心。沙兹的回答被认为是正确的。此外,我还得到了一些信任,并将一段代码分块重写,试图确定问题所在。我可能在什么地方出了语法错误。沙兹的帮助是非常有用的,因为我至少知道很多都是绝对正确的,而且在这个问题上规范似乎不是很清楚。所以,非常感谢!如果没有那个帮助,我肯定无法解决这个问题。
$strSQL = 'SELECT `Assigned To`, `Assigned Date`, `Image Cnt`
FROM `received projects`
WHERE `received projects`.`Image Cnt` > 0';