ホームページ > バックエンド開発 > PHPチュートリアル > Smarty が Oracle データ配列を取得して渡すとき、各フィールドの最初の文字のみが取得されるという問題について。

Smarty が Oracle データ配列を取得して渡すとき、各フィールドの最初の文字のみが取得されるという問題について。

WBOY
リリース: 2016-06-23 13:54:02
オリジナル
1162 人が閲覧しました

私はsmartyを初めて使用します。oracleデータを取得した後、各フィールドの最初の文字のみが取得され、依然として文字化けしていることがわかりました。

コードは次のとおりです:
Smarty.php

<?phpinclude 'ora/oraconn.php';   $dRootDir = '../../';      require_once($dRootDir . '_config.php');   require_once($dRootDir . 'inc/params.php');    require_once($dRootDir . 'inc/classes/db.php');   require_once($dRootDir . 'inc/classes/template.php');   require_once($dRootDir . 'inc/classes/util.php');      $tpl = new Template($gTemplate);Util::gpc();$sql="SELECT bpcnum_0 as BPCNUM,bpcnam_0 AS BPCNAM from bpcustomer where rownum<10";$stmt = oci_parse($conn, $sql);oci_execute($stmt);$array = oci_fetch_array($stmt, OCI_BOTH);$tpl->assign('ssss',$array);	$tpl->assign("News_CH", $array);	unset($array);	$tpl->display('smarty.tpl');?>
ログイン後にコピー


以下は、smarty.tpl です

<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#B9E9FF"><tr> <td height="115" width="10"></td><td valign="top" width="295" bgcolor="#B9E9FF">{--section name=customer loop=$News_CH--}<li ><a href="news.php?type=1&id={--$News_CH[customer].BPCNUM--}" >{--$News_CH[customer].BPCNAM--}</a></li>{--/section--}</td></tr></table>
ログイン後にコピー


何が問題だったのかアドバイスをお願いします。ありがとう!


ディスカッションへの返信 (解決策)

Smarty のことは忘れてください
$array = oci_fetch_array($stmt, OCI_BOTH);
print_r($array); について見てみましょう

ありがとうございますウズ・ウニング秒 返信後、表示結果は全て正常になり、smarty.tplに渡すと文字化けが発生し、各フィールドの値に文字化けが発生しました。

見せてもらうのが一番です


これが効果です

配列をカスタマイズするとデータ化けませんが、Oracleデータベースから読み込むと上記の問題が発生します!

データベースから読み取ったデータを見たいです!


oci_fetch_array($stmt, OCI_BOTH) によれば、それは添字配列であるはずです
その場合、$News_CH[customer].BPCNUM は間違っています

ただし、データを確認する必要があります

Smarty.php では print_r($array );exit(); 結果を見てください。

出力したものが通常の配列ではない可能性があります。出力データに問題があるかどうかを確認してください。

ご協力ありがとうございます。

その後、mysql でテストしたところ、配列の割り当てが間違っていることがわかり、いくつかのコードで解決しました。
リーリー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート