【问题标题】:MS Access query in PHP returns no resultsPHP 中的 MS Access 查询不返回任何结果
【发布时间】:2013-12-04 20:01:05
【问题描述】:

我在 MS Access 中有一个查询,该查询已保存并在直接从 ms access 启动时有效。

我创建了一个 php 页面,该页面通过按名称调用此查询来输出该信息,但查询不返回任何内容! 我的代码应该可以工作,因为我调用了 Access 中的其他查询,并且它们确实返回了数据。

  • 在 Access 中启动(双击)时查询有效
  • 从 PHP "SELECT * see query below" 键入和执行时查询不返回结果
  • 当 MS Access-name 从 PHP "SELECT * FROM Query1" 调用时,查询不返回结果
  • 当 MS Access-name 从 PHP "SELECT * FROM Query2" 调用时,同一数据库中的其他查询按预期执行

SELECT * 
FROM   (SELECT a2.[vendor_oel_yr], 
               Count(a2.qty) AS eol_qty 
        FROM   (SELECT "wintel"                               AS Platform, 
                       s.city & "," & s.state                AS 
                       [Physical Location], 
                       ""                                     AS 
                       [Special Flag (Project)], 
                       ""                                     AS 
                       [Special Flag (sub location)], 
                       ""                                     AS 
                       [location Floor], 
                       ""                                     AS 
                       [Room Discriptor], 
                       Format(s.unitprce, "currency")         AS [Unit Price], 
                       "hp"                                   AS Manufacturer, 
                       t.make_model                           AS Model, 
                       s.itemnmbr                             AS [Part Number], 
                       s.qty                                  AS Qty, 
                       s.itemdesc                             AS Description, 
                       s.sn                                   AS [Serial Number] 
                       , 
                       "" 
                       AS [Asset Tag #], 
                       ""                                     AS Environment, 
                       t.computer                             AS 
                               [Device Name (Naming Standard)], 
                       s.docdate                              AS [Install Date], 
                       4                                      AS 
                       [Vendor Useful Life], 
                       ""                                     AS 
                       [Operational Useful Life], 
                       s.docdate + ( 4 * 365 )                AS 
                       [Vendor EOL Date], 
                       ""                                     AS 
                       [Operational EOL Date] 
                       , 
                       Format(s.qty * s.unitprce, "currency") AS 
                       [Purchase Price], 
                       Year(s.docdate + ( 4 * 365 ))          AS Vendor_OEL_Yr 
                FROM   sayers_invoice AS s 
                       INNER JOIN tamit_wintel AS t 
                               ON s.sn = t.serial_number 
                WHERE  Len(s.sn) > 0) AS a2 
        GROUP  BY a2.[vendor_oel_yr]) AS a2O;  

【问题讨论】:

  • 做过调试吗?检查 php 中 db 调用的返回值?
  • 我多次调用多个查询(同一个数据库)。它们都使用 PHP。此查询的唯一例外 - 从 MS Access 调用时它可以工作
  • 你试过直接在访问时执行结果查询吗?
  • 仅仅因为其他查询有效就没有任何意义。检查返回值。如果你得到一个失败指示,无论你使用什么数据库库都应该有一些方法来告诉你错误是什么。
  • 我被困在这里,不知道该怎么办。我尝试在 PHP 中输​​入此查询并调用它 - PDO 返回空结果集。有什么办法可以调试吗?

标签: php sql ms-access pdo odbc


【解决方案1】:

似乎复杂的查询造成了这个问题。 我必须优化查询,然后它才起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多