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\" のいずれかからフィールドに個別にアクセスしようとすると正常に動作しますが、2 つのテーブルを結合しようとすると何も出力されません。

これは、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 に答える