如何查询在列名称中具有句点的Excel工作表

我有这个Excel电子表格,我想使用ODBC Excel驱动程序从PHP页面查询。 以下面的表格为例:

tblExample ---------------------------------- | Column1 | Column 2 | Column 3. | ---------------------------------- | 1 | Mike | 12345 | | 2 | Sally | 67890 | | 3 | Mitchel | 12345 | | 1 | James | 67890 | ---------------------------------- 

现在让我们说我想用LIKE语句来查询每一列。 第一个我可以查询没有问题。

 SELECT * FROM tblExample WHERE Column1 LIKE '%1%'; 

第二个也很容易查询,虽然我必须使用[]括号,因为空间。

 SELECT * FROM tblExample WHERE [Column 2] LIKE '%Mi%'; 

然而,第三列给我带来麻烦。 当我尝试用以下方式查询它时:

 SELECT * FROM tblExample WHERE [Column 3.] LIKE '%12345%'; 

我得到这个错误:

 37000: [Microsoft][ODBC Excel Driver] '' is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long. 

我非常确定它是在(。)之后期待一个表名,但我希望能够发送列名并完成它。 重命名列删除期限确实有效,但不是我的第一个解决scheme。

有没有另一种方法发送一个列名与ODBC的Excel,将允许我保持(。)?

PHP代码

 $con = odbc_connect("my_data_source_name","","",SQL_CURSOR_FORWARD_ONLY); $stmt = "SELECT * FROM tblExample WHERE [Column 3.] LIKE '%12345%'"; $qryrst = odbc_exec($con, $stmt); --fails here 

今天我遇到了同样的问题。 原来的ODBC驱动程序转换。 至 #。 因此,您应该将您的专栏引用为[专栏3#]。 希望这可以帮助。