Linux odbc Schwerwiegender Fehler: Zulässige Speichergröße

Ich habe momentan einige Probleme, ein Intranet mit einer ODBC-Verbindung zwischen einem AS400 (iseries V6R1) und einem Debian einzurichten. Ich verwende den ODBC-Treiber 64bit von iseriesAccess7.1, unixODBC2.3.1 und php5.4 mit Unterstützung von unixODBC.

Mein Link scheint gut zu sein, weil ich mit dem isql-Befehl (der Teil von unixODBC ist) eine Verbindung zu meiner Datenbank herstellen und einige SQL-Abfragen ausführen kann, aber es ist unmöglich, Datensätze in der Datenbank mit einem PHP-Skript zu lesen. Wenn ich versuche, ein kleines Skript in meinem Intranet zu starten, wird folgende Fehlermeldung angezeigt:

Schwerwiegender Fehler: Zulässige Speichergröße von 134217728 Byte erschöpft (versucht, 493921239296 Byte zuzuweisen) in /home/www/imypdo/imypdo.php in Zeile 122

das sind mehr als 450 GB !! und nichts in / var / log / messages und in / etc / httpd / logs / error_log

Eine einfache SQL-Abfrage (mit nur 1 Zeile in der Auswahl) gibt einige seltsame Zeichen zurück (siehe unten). Sobald ich 1 oder 2 weitere Zeilen auswähle, tritt der Speichergrößenfehler auf.

[0] => Array ([ADHMAR] => AAAAAAA a @ YÿŒ4 – X 0! ŸŒ4làÿŒ4làÿŒ4!)

Ich bin mir fast sicher, dass es sich um ein 64-Bit-Treiberproblem handelt, da ich bereits ein anderes Debian habe, das mit dieser Serie, aber mit dem 32-Bit-Treiber verknüpft ist, und es einwandfrei funktioniert. Was seltsam ist, ist, dass der isql-Befehl funktioniert und nichts in den Protokolldateien ist ...

Wenn es sich wirklich um ein 64-Bit-Treiberproblem handelt, wie kann ich es IBM beweisen?

Jede Hilfe wird geschätzt

Vielen Dank

--------------------------- Zu verbindende Klasse -------------------- --------

private $_bdd = "DSN=db2;",
        $_user = "USERNAME",
        $_pwd = "Password";

private $_con,
        $_isConnected;


public function open_connection(){
    $this->_con = odbc_connect ($this->_bdd, $this->_user, $this->_pwd ) or die("Error Connection") ;
    $this->_isConnected = true;
}

public function close_connection(){
     odbc_close($this->_con);
     $this->_isConnected = false;
}

public function execute($sql){

    if(!($this->_isConnected))
        $this->open_connection();

    #execute sql
    $res = odbc_exec($this->_con, $sql);

    return $res;
}

public function fetchRow($res){

    $row = odbc_fetch_array($res);
    return $row;
}

}

--------------------------------- Abfrageskript --------------- ---------------

public function getPhoneLogsByDate($startDate, $endDate) {

    $startDate  = date('Ymd', strtotime($startDate));
    $endDate    = date('Ymd', strtotime($endDate));

    $rr = new As400_Model_as400query();

    $rr->open_connection();

    $sql = "select trim(tluser) as USER, trim(tlacct) as CLIENT, trim(concat(concat(concat(concat(concat(concat(substr(trim(tldate),1,4),'-'),substr(trim(tldate),5,2)),'-'),substr(trim(tldate),7,2)),' '), concat(concat(concat(concat(substr( substr(trim(tltime+1000000),2,6),1,2),':'),substr(substr(trim(tltime+1000000),2,6),3,2)),':'), substr(substr(trim(tltime+1000000),2,6),5,2)))) as DATETIME 
            ,trim(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(trreas,'|'),trsr01),'|'),trsr02),'|'),trsr03),'|'),trsr04),'|'),trsr05)) as REASONS
            ,trim(concat(concat(concat(tnnot1,tnnot2),tnnot3),tnnot4)) as NOTES

            from cabledta.tlogmstr left join cabledta.tlogreas on trnum#=tlnum#  left join cabledta.tlognote on tnnum#=tlnum#
            where tldate>='".$startDate."' and tldate <='".$endDate."'";



    $res = $rr->execute($sql);

    $response = array();


    while ($row = $rr->fetchRow($res)){

        $response[] = array(

                                'userName'      => $row['USER'],
                                'clientNumber'  => $row['CLIENT'],
                                'logDateTime'   => $row['DATETIME'],
                                'logReasons'    => $row['REASONS'],
                                'logNotes'      => utf8_encode($row['NOTES'])

                            );

    }
    $rr->close_connection();

return $response;
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage