我有一個問題,我通過PHP的odbc連接。有一個叫statistics.mdb其中一些信息存儲在數據庫在這個數據庫中有兩個表: - 營業額網上商店 - 商店MDB/ODBC與PHP - 錯誤/分組的查詢結果
表「商店」比「週轉網上商店」小得多。以下連接/查詢對錶「商店」沒有任何問題。但是當我嘗試將它與「營業額EShop」一起使用時,它顯示出一個問題。
$pdo = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=O:\\Statistics\\statistics.mdb;Uid=Admin");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM Turnover EShop WHERE ProductGroup = 'A22'";
$exec = $pdo->query($sql);
foreach ($exec as $row) { echo $row[1]."<br>"; //index Problem mentioned below: 1 = 'ProductName' }
有結果,甚至是正確的。但表「成交網上商店」看起來像這樣(simplyfied 3行):
OrderID: 1
ProductName: Super Product 77
ProductNo: 123-456
ProductGroup: A22
OrderID: 2
ProductName: Super Product 77
ProductNo: 123-456
ProductGroup: A22
OrderID: 3
ProductName: Product 12
ProductNo: 888-999
ProductGroup: B52
最後,結果是:超品77(只有一次......),但它應該有兩次......
另一個有趣的是,通過使用$row['ProductName']
,它只適用於「商店」表。在更大的表格「Turnover EShop」中,由於未定義的索引導致錯誤...因此,我必須使用與列數不匹配的數字。
foreach ($exec as $row) { echo $row[1]."<br>"; }
感謝您的支持提前祝你美好的一天
當然,在空格或特殊字符或保留字MS Access字段名和表名應以方括號括起來。此外,PHP數組是基於零的,因此第一列* OrderID *將是'$ row [0]',而第二列* ProductName *將是'$ row [1]'。 – Parfait