Frage

Zur Zeit verwende ich freetds zu einem MSSQL-Server zu verbinden, wo ich in einer Menge von Abrechnungsdaten am ziehen. Die Daten ziehen in Ordnung, bis es einen Nullwert trifft. An diesem Punkt Ich erhalte keine PHP-Fehler. Stattdessen bin ich in dem Apache-Fehlerprotokoll der folgenden Fehler.

  

[Ankündigung] Kind pid 10235 Ausfahrtssignal Segmentation fault (11)

Ich habe für diese einige der Suche und fand diese Seite , aber es funktioniert hilft nicht wirklich. Die Abfrage ich Aussehen bin mit so etwas wie dies,

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

Und ich bin die Daten immer eine while-Schleife wie die folgenden verwenden,

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

Ich kann nicht sagen, ob dies ein Problem mit PDO, meiner Datenbankschicht, MSSQL oder meine Frage. Außerdem würde ich darauf hinweisen, wenn ich die Abfrage nehmen und es manuell mit MSSQL Studio laufen, es läuft gut, und zeigt die Nullwerte richtig.

War es hilfreich?

Lösung 2

Eine Lösung für dieses Problem funktioniert durch das Hinzufügen, wenn Null-Anweisungen für alle Rückgabespalten so mögen,

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

Wenn nulls nun gefunden werden, werden sie als Nullen ohne Fehler zurückgegeben. Es ist nicht die schönste, aber es funktioniert.

Andere Tipps

Segmentierungsfehler sind kein Spaß, zu beschäftigen. Die beste Antwort, die ich Ihnen geben kann, ist ständig Platz die('okay'); Anrufe an verschiedenen Orten zu sehen, wie weit in verschiedenen Codierungsblöcken erhalten Sie, bevor Sie einen seg Fehler betroffen. (Sie werden nichts sehen, ob es ein seg Fehler ist).

Es ist auch nur ein Versuch wert, nur Upgrade alles auf die neuesten Versionen. PHP, PDO, etc

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top