0
$conn=odbc_connect('mydatabase','','');
$sql="SELECT 
    Orders.OrderID,
    Orders.OrderDate,
    \"Order Details\".OrderID,
    \"Order Details\".UnitPrice,
    \"Order Details\".Quantity,
    \"Order Details\".Discount,
  FROM 
    \"Order Details\"
  INNER JOIN 
    Orders 
  ON \"Order Details\".OrderID = Orders.OrderID";
$rs=odbc_exec($conn,$sql) or die("<p>".odbc_errormsg());
while (($row = odbc_fetch_array($rs)) !== false)

当我尝试输出 $rs 的结果时,没有返回任何内容。如果我尝试分别从 Orders 或“Order Details”访问字段,它工作正常,但如果我尝试 JOIN 两个表,它什么也不输出。

这是在使用 MSSQL 时从名称中有空格的表中选择字段的正确方法吗?当我尝试 "SELECT * FROM \"Order Details\"" 时,它似乎有效,但是当我尝试加入表时,我必须指定 "\Order Details\".OrderID,我认为这可能是它变得混乱的地方。

Apache 错误日志返回一个奇怪的“odbc_fetch_array(): No tuples available at this result”消息,但我不肯定这是实际问题,因为我看到此错误消息出于不相关的原因随机弹出。尽管如此,我还是不太明白,所以我想我应该提一下。

谢谢!

4

1 回答 1

1

不要使用“/”,而是使用括号。

"SELECT Orders.OrderID, [Order Details].UnitPrice 
 FROM [Order Details] INNER JOIN Orders ON [Order Details].OrderID = Orders.OrderID"
于 2012-07-04T15:40:24.250 回答