$my_var = "1";
$connection = db2_connect ("*LOCAL", "ISCSC", "ISCSC");
$strSql = 'CALL LMTLIB.ARTEST(?)';
$stmt = db2_prepare ($connection, $strSql);
db2_bind_param($stmt, 1, "my_var", DB2_PARAM_INOUT, DB2_CHAR);
$rc = db2_execute ($stmt);
echo $my_var;
當這個代碼塊執行,$ my_var的值爲| - |PHP - 轉換EBCDIC到ASCII
被稱爲是迴歸哇測試RPGLE程序
當程序改變時,我回來的角色是不同的......所以我知道我從程序中獲得了價值。唯一的問題是,如何將這些字符從EBCDIC轉換爲ASCII。
編輯
我已經使用了以下嘗試:
mb_convert_encoding($my_var, "ASCII", "cp037");
mb_convert_encoding($my_var, "ASCII", "EBCDIC");
iconv("cp037", "ASCII", $my_var);
iconv("EBCDIC", "ASCII", $my_var);
,但我得到這個錯誤: 「錯誤的字符集,轉換,從」 EBCDIC到ASCII 「不允許」
而且,「錯誤的字符集,不允許從」cp037轉換爲ascii「的轉換」
當我們指定ccsid 37並嘗試調用SP ...我收到一條消息:artest中的程序lmtlib未找到指定的參數。 – adam
參數需要完全匹配。我發佈的程序在您發佈的PHP代碼調用時工作。我在程序中使用了varchar,並在RPG中變化。 V5R4在這裏。 –
所以如果我們做了CHARACTER(4),並且你做了VARCHAR(4),那會導致我看到的問題?我們的導演讓我訪問創建程序,以便我可以自己測試這個..然後我將能夠提供更好的反饋/響應:) – adam