如何查询在列名称中具有句点的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#]。 希望这可以帮助。