Почему мои строки синтаксиса бросают строки SQL? Ответ: MDBTools не поддерживает JOIN, ORDER BY или другие SEE. http://github.com/brianb/mdbtools/blob/master/src/sql/lexer.l
Этот код не работает (синтаксическая ошибка рядом.):
$db = "access.mdb";
$conn = new PDO("odbc:DRIVER=MDBTools; DBQ=$db; Uid=; Pwd=;");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT "Order No", "Ship To File"."Cust Name" ';
$sql = $sql . 'FROM "Order File" ';
$sql = $sql . 'INNER JOIN "Ship To File" ';
$sql = $sql . 'ON "Order File"."Customer No" = "Ship To File"."Cust No" ';
$sql = $sql . 'WHERE "Order No"=\'RV2002-001\'';
Больше / Другая информация:
Совершенно уверен, что это «Корабль в файл». «Имя Cust». бросая рядом. ошибка, потому что без «Ship To File». «Cust Name» изменяет ошибку на почти INNER, что заставляет меня думать, что проблема заключается в пространстве имен для полей и таблиц с пробелами.
Замена двойных кавычек галочками для таблиц и полей с пробелами сломает даже самые простые запросы (синтаксическая ошибка около `). INNER JOIN-запрос, кажется, прекрасно работает в MS-Access, но с двойными кавычками в скобках.
Этот код также не работает (синтаксическая ошибка в `):
$db = "access.mdb";
$conn = new PDO("odbc:DRIVER=MDBTools; DBQ=$db; Uid=; Pwd=;");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT `Order No` ";
$sql = $sql . "FROM `Order File` ";
Этот код дает мне запись / результат:
$db = "access.mdb";
$conn = new PDO("odbc:DRIVER=MDBTools; DBQ=$db; Uid=; Pwd=;");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT "Order No" ';
$sql = $sql . 'FROM "Order File" ';
$sql = $sql . 'WHERE "Order No"=\'RV2002-001\'';
Подсистема Windows для Linux, PHP версии 5.5.9-1ubuntu4.22, apache2, MDBTools, не может изменять таблицы или поля базы данных (доступ к базе данных по символической ссылке в настоящее время, пока другие все еще используют MS Access для своего интерфейса).
«Отправка в файл». «Cust No» — это тип (autonumber)
«Файл заказа.« Номер клиента »- это тип (номер)
Комментарии или предложения?
MDBTools не поддерживает JOIN или ORDER BY. УВИДЕТЬ http://github.com/brianb/mdbtools/blob/master/src/sql/lexer.l
Других решений пока нет …