2014-01-24 2 views
2

У меня есть таблица Excel, которую я хочу запросить с php-страницы, используя драйвер ODBC Excel. Возьмите следующую таблицу, например:Как запросить лист Excel с периодом в имени столбца

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 
+0

Можете ли вы попытаться использовать двойные кавычки вместо квадратных скобок? – crnlx

+0

Дайте ему пойти с 'SELECT * FROM tblExample WHERE" Столбец 3. " LIKE '% 12345%'; ', но я все еще получил ошибку, упомянутую выше. Хорошая идея. – jaredk

+0

http://support.microsoft.com/kb/826763 - Попробуйте ... WHERE Столбец 3 [.] LIKE ... – user3056839

ответ

4

я столкнулся с такой же вопрос сегодня. Выключает драйвер ODBC. на #. Следовательно, вы должны ссылаться на свою колонку как [Столбец 3 #]. Надеюсь, это поможет.

+0

У этой проблемы тоже была такая же проблема. Жаль, что этот ответ не задокументирован. Спасибо за ответ! –

Смежные вопросы