Domanda

Attualmente sto usando freetds per connettersi a un server MSSql dove sto tirando un sacco di dati contabili.I dati si tira bene fino a quando non colpisce un valore null.A quel punto non ricevo nessuna PHP errori.Invece ricevo il seguente errore errore di apache log.

[avviso] bambino pid 10235 uscita segnale di errore di Segmentazione (11)

Ho fatto qualche ricerca e trovato questo questa pagina, ma non è di grande aiuto.La query che sto usando sembra qualcosa di simile a questo,

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

E sto ottenendo i dati utilizzando un ciclo while come il seguente,

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

Non riesco a capire se questo è un problema con il DOP, il mio livello di database, MSSQL, o la mia query.Inoltre, vorrei sottolineare che se faccio la query ed eseguire manualmente utilizzando MSSQL studio, funziona bene, e mostra i valori null in modo corretto.

È stato utile?

Soluzione 2

Una soluzione a questo problema funziona con l'aggiunta, se le dichiarazioni NULL per tutte le colonne di ritorno in questo modo,

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

Se i valori nulli si trovano ora, sono restituiti come zeri senza errori. Non è il più bello, ma funziona.

Altri suggerimenti

Segmentation fault non sono divertenti da affrontare.La migliore risposta che posso darti è quello di continuare a posto die('okay'); chiamate in vari luoghi per vedere quanto in diversi blocchi di codifica si ottiene prima di colpire un seg fault.(Non si vedrà nulla, se c'era una seg fault).

Vale anche la pena solo cercando di aggiornare tutto alle ultime versioni:PHP, DOP, etc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top