0

Oracle DBにhtmlテンプレートをCLOBとして保存するアプリケーションがあります。以前に保存した HTML
更新 すると、 になり??ます。

$sql = "UPDATE headers 
        SET header_code = :HEADER_CODE
        WHERE header_ID = :HEADER_ID ";
...

oci_bind_by_name($stid, ':HEADER_CODE', $form_qs['HEADER_CODE']); 
oci_bind_by_name($stid, ':HEADER_ID', $form_qs['HEADER_ID']); 
...

Oracle バージョン情報:
Oracle Database 10g Enterprise Edition リリース 10.2.0.4.0 - 64bi
PL/SQL リリース 10.2.0.4.0 - 本番
"CORE 10.2.0.4.0 本番"
Solaris 用 TNS: バージョン 10.2.0.4.0 - 本番
NLSRTLバージョン 10.2.0.4.0 - 本番

PHP バージョン 5.2.6

4

2 に答える 2

1

datasage で、これがエンコーディングの問題であり、データベースの問題ではないことに気付いた後、Google 検索に再び焦点を合わせたところ、  を変換しているテキストボックス (enctype とともに) であることがわかりました。2文字のUnicodeに変換します(strlen($ form_qs ['HEADER_CODE'])をエコーアウトしました)。

そうは言っても、私は今 & を & に置き換えています。テキストボックスに   が表示されます。空白ではありません。解決策が他のものを台無しにしないことを願っていますが、時間が教えてくれます.

str_replace('&','&',$form_qs['HEADER_CODE']);

(書式設定の助けをしてくれた DoSparKot と nickb に感謝します)

于 2013-02-27T16:01:36.617 に答える
0

コードの構文エラーについてはわかりませんがoci_new_descriptor()、CLOB の新しい記述子を開くために使用できます

<?php
$clob = oci_new_descriptor ($conn, OCI_D_LOB);
oci_bind_by_name ($stid, ':HEADER_CODE', $clob, -1, OCI_B_CLOB);
$clob->write  ($form_qs['HEADER_CODE']);

oci_bind_by_name($stid, ':HEADER_ID', $form_qs['HEADER_ID']);

//after execution/commit
$clob->free();
?>

OCI_D_LOB:LOB型のデータ

OCI_B_CLOB: CLOB型のバインディング

于 2013-02-26T20:02:55.900 に答える