为什么我的内连接会抛出语法错误?

时间:2017-10-18 19:17:24

标签: php ms-access pdo odbc mdbtools

为什么我的sql字符串会抛出语法错误?答案:MDBTools不支持JOIN或ORDER BY或其他SEE enter image description here

此代码不起作用(语法错误接近。):

$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\'';

更长/其他信息:
很确定这是“送货到档案”。“客户名称”。扔近。错误,因为省略“发送到文件”。“客户名称”将错误更改为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\'';

适用于Linux的Windows子系统,PHP版本5.5.9-1ubuntu4.22,apache2,MDBTools,无法更改数据库表或字段(此时通过符号链接访问数据库,而其他人仍在使用MS Access作为其接口)

“发送到文件”。“客户编号”是类型(自动编号) “订单文件。”客户编号“是类型(编号)

评论或建议?

1 个答案:

答案 0 :(得分:1)