2016-11-04 2 views
0

Ich erhalte Segmentation Fault(core dumped) Fehler in odbc_fetch_array. Obwohl ich 1500 Ergebnisse durch Ausführen (odbc_exec) einer MSSQL-Abfrage in einer $resultSet Variable, die global ausgelöst hat, versuche ich, jede Zeile zu holen und speichern Sie es in ein Array mit in while Schleife. Als ich versuchte, das Skript auszuführen, wurden aus den ersten 7 Zeilen die ersten Zeilen abgerufen und im Array gespeichert. Aber danach trat der Segmentation Fault(core dumped) Fehler auf und stoppte den Abrufprozess.Segmentation Fault (core dumped) Fehler in odbc_fetch_array() php

Hier ist der Code Ich verwende:

$i=1; 
$display_data = array(); 

while($data = odbc_fetch_array($this->ressultSet)) 
{ 
    $display_data[$i] = $data ; 
    $i++; 
} 

Kann mir jemand helfen in dieser Frage?

Vielen Dank!

Antwort

1

Sie diesen Fehler bei https://bugs.php.net/bug.php?id=61387&edit=1 finden.

Ich habe das Problem auf odbc_fetch_array() für Ergebnissätze isoliert, die eine anonyme (unbenannte) Spalte mit einem Nullwert enthalten. Wenn NULL Wert aliased ist („SELECT NULL als etwas“) kein Absturz. Wenn eine anonymen (unbenannt) Spalt etwas anderes als NULL enthalten, gibt es keinen Absturz.

Testskript:

$sql = 'SELECT NULL'; 

$c = odbc_connect('Driver=SQL Server Native Client 
11.0;server=hpesc1;uid=xxx;pwd=xxx;Database=xxx','',''); 

$e = odbc_exec($c, $sql); 

$row = odbc_fetch_array($e); 

Hier sind verschiedene Kombinationen von SQL, die wird oder nicht PHP abstürzen:

$sql = 'SELECT NULL'; // PHP SEGFAULT 

$sql = 'SELECT NULL as [one]'; // OK 

$sql = 'SELECT 1'; // OK 

$sql = 'SELECT 1, NULL'; // SEGFAULT 

$sql = 'SELECT 1, NULL as [two]'; // OK 

ich so etwas in meiner Anfrage Resolved machen:

SELECT * FROM foo ORDER BY id ASC 

es Hoffnung,

hilft

Marco.

Verwandte Themen