2016-05-11 12 views
0

Bei Verwendung der PDO ASSOC-Anweisung bekomme ich nur den ersten Buchstaben der Spalte anstelle des vollen Buchstabens. Irgendwelche Ideen ? Weitere Informationen unter:PDO Abruf assoc iSeries AS400 unixodbc liefert nur den ersten Buchstaben der Spalte

kleinem Codeblock über PHP FETCH_ASSOC:

$pdo = new PDO("xxx", "user","pwd"); 
$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING); 
$query = $pdo->query("SELECT TRND.TRANID FROM PCRMTRND AS TRND"); 
$query->execute(); 
$tmp = array(); 
while($row=$query->fetch(PDO::FETCH_ASSOC)) { 
     array_push($tmp,$row); 
} 

Nach dem Füllen Array tmp:

enter image description here

Var DUMP jede Zeile:

enter image description here

Se Ttings von ODBC:

[xxx] 
Description    = iSeries ODBC 
Driver     = IBM i Access ODBC Driver 
System     =/
UserID     = 
Password    = 
Naming     = 0 
DefaultLibraries  = QGPL 
Database    = 
ConnectionType   = 0 
CommitMode    = 2 
ExtendedDynamic   = 1 
DefaultPkgLibrary  = QGPL 
DefaultPackage   = A/DEFAULT(IBM),2,0,1,0,512 
AllowDataCompression = 1 
LibraryView    = 0 
AllowUnsupportedChar = 0 
ForceTranslation  = 0 
Trace     = 0 
+0

Warum fügen Sie das Ergebnis in Array anstelle von echo es aus? Sind Sie sicher, dass Ihr Code das Verhalten testen soll, das Sie beschrieben? –

+0

Ja. Ich füge einfach hinzu um alle Ergebnisse in einem Array zu haben Ich kann es in Debug sehen, dass Array nur einen Schlüssel Buchstaben hat – David

+0

Leider können wir es nicht sehen.Um Hilfe zu bekommen, müssen Sie den Code, den Sie verwenden, und die tatsächliche Ausgabe Sie haben –

Antwort

1

Ich stieß auf das gleiche Problem, es scheint, es hat etwas mit Gebietsschema Einstellungen zu tun. Als ich LC_ALL von "en_US.UTF-8" zu "en_US.ISO-8859-1" änderte, verschwand das Problem. Daher habe ich nicht die Ausgabe in UTF :(