[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2009
    Beiträge
    7

    SQL resultset --> PHP encoding

    Hallo!

    Folgendes SQL läuft im Navigator problemlos und liefert das gewünscht Ergebnis:
    SQL
    select fir, '00010101' as trm#, 'L' as rsar, msas, manr, mfbn, mgrs, dspb, sum(mbtv+mbzu-mbab) as Menge
    from libx.filex where ...
    group by fir, msas, manr, mfbn, mgrs, dspb

    Ergebnis:
    Firma TRM# RSAR Mat.-Saison
    001 00010101 L 58

    Wenn ich nun das Ergebnis als Result-Set in PHP auslese sind TRM# und RSAR unlesbare Zeichen:

    MSAS

    TerminStatus



    58

    ñ.ð.ððÓ

    58

    ñ.ð.ððÓ

    58

    ñ.ð.ððÓ



    Die Ergebnisfelder TRM# und Art konvertiere ich mit trim(mb_convert_encoding(db2_result($result, 'TRM#'),"UTF-8","ISO-8859-1"));

    Vielen Dank für eure Hilfe

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Irgendwo fehlt da wohl noch die Konvertierung von EBCDIC nach ASCII oder UTF-8.

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Wenn ich das richtig sehe, gibst du den Wert '00010101' schon im PHP-Skript im SELECT mit an.
    Eventuell ist es schon UTF-8, dann brauchst du auch keine Konvertierung mehr machen.

    lg Andreas

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dies ist ein Problem der nicht vorhandenen CCSID (*HEX bzw. 65535) auf den Zeichenfeldern der Datenbank.

    Schau mal in die i5_Connect-Properties, ob du eine Einstellung für "Convert 65535=true" findest und wende diese an.

    Alternativ hilft auch ein Cast:

    select cast(TRM# as char(nn) ccsid 273) as TRM# ...

    Alternativ auch zusätzlich in Unicode:

    select cast(cast(TRM# as char(nn) ccsid 273) as grphic(nn) ccsid 13488) as TRM# ...
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jan 2001
    Beiträge
    833
    Hallo,

    die Jobs von PHP laufen im Subsystem QSYSWRK
    Z.B.:
    Job: QSQSRVR Benutzer: QUSER Nummer: 335650

    evtl. prüfen mit welchem Zeichensatz der Job läuft.

    Gruß
    Michael

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ein SQL-Serverjob hat immer eine CCSID!
    Steht der Systemwert auf 65535 wird die CCSID aus der Sprach-ID (User oder Systemwert) entwickelt.
    Da ODBC ja in ANSI/ASCII umwandeln muss, wird immer eine CCSID eingestellt.
    Hier steht wohl die Datei bzw. die Felder auf CCSID *HEX, was eine automatisch Codewandlung verhindert.
    In den ODBC/JDBC-Treibern gibt es eine Einstellung für zwangsweises wandeln von *HEX, was im Übrigen echte Binärdaten dann verhindert. Ich speichere z.B. Bilder (jpg's u.ä.) in der DB, die natürlich nicht gewandelt werden dürfen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Jun 2009
    Beiträge
    7

    Thumbs up

    Danke für die ausführlichen Erklärungen.
    Auf die Schnelle hab ich das mit dem CAST gelöst - die Einstellungen im I5_Connect werde ich mir bei Gelegenheit mal ansehen.

Similar Threads

  1. PHP SQL Anweisung
    By DISCOME in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 07-09-12, 08:53
  2. DDS: VARLEN, SQL TRIM -> trotzdem große Datei
    By schatte in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 02-02-12, 12:54
  3. SQL -> CREATE VIEW
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 17
    Letzter Beitrag: 11-05-06, 14:57
  4. QUERY --> SQL
    By redsky in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 17-10-05, 11:23
  5. MS Sql Server + iSeries -> Verbindungsserver
    By reraru in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 20-04-05, 13:07

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •