目前我使用freetds的连接,我在很多会计数据的我拉MSSQL服务器。该数据以细拉,直到遇到一个空值。在这一点上我没有收到任何PHP错误。相反,我得到在Apache的错误日志中的错误。

  

[声明]儿童的pid 10235退出信号分割故障(11)

我做了一些这方面的搜索和发现此页面,但它确实没有真正的帮助。我使用看起来像这样的查询,

SELECT DISTINCT(t1.PEREND), t2.ERATE, t2.EEXTEND, t2.EARNDED, t1.ENTRYSEQ
       FROM UPCHKD as t1 LEFT JOIN
            (SELECT EARNDED, PEREND, ERATE, EEXTEND, ENTRYSEQ FROM UPCHKD
                    WHERE (EARNDED LIKE '401K%'AND EARNDED NOT LIKE '401KL%') AND
                          EMPLOYEE = ? AND PEREND >= ? AND PEREND <= ?) as t2 ON t1.PEREND = t2.PEREND
       WHERE t1.PEREND >= ? AND t1.PEREND <= ? AND t1.EMPLOYEE = ? ORDER BY PEREND

和我正在使用一个while循环像下面的数据,

while($result = $sth->fetch(PDO::FETCH_ASSOC)) {
    //Deal with data here
}

我不知道这是否是与PDO的一个问题,我的数据库层,MSSQL,或我的查询。另外,我想指出的是,如果我走查询并且使用MSSQL工作室手动运行它,它运行良好,并示出了空值正常。

有帮助吗?

解决方案 2

一个解决这个问题的工作原理是,如果添加空语句对所有的回报列像现在这样,

ISNULL(t2.ERATE, 0) as ERATE, ISNULL(t2.EEXTEND, 0) as EEXTEND, ISNULL(t2.EARNDED, '') as EARNDED

如果现在被发现空值,它们被返回为没有错误零。这是不是最漂亮的,但很有效。

其他提示

分段错误是没有乐趣来处理。最好的答案我可以给你是不断在各个地方的地方die('okay');电话,看看你有多远在不同的编码块给你打了赛格故障之前。 (你不会看到任何东西,如果有一个赛格故障)。

这也是值得只是想只是一切升级到最新版本:PHP,PDO等

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top