如何查询列名称中包含句点的Excel工作表

时间:2014-01-24 16:18:15

标签: php sql excel odbc

我有这个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.

我很确定它在(。)之后需要一个表名,但是我希望能够发送列名并完成它。重命名列以删除期间确实有效,但不是我的首选解决方案。

是否有另一种方法可以使用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

1 个答案:

答案 0 :(得分:7)

我今天遇到了同样的问题。 结果是ODBC驱动程序转换。至 #。 因此,您应该将您的列引用为[Column 3#]。 希望这会有所帮助。