コード内の while はループせず、結果を 1 行しか出力できません。
また、データベースに中国語が含まれている場合、実行時にエラーが報告されます。
アドバイスをお願いします!
header("Content-type:text/xml;charset=utf-8"); $conn = new com("ADODB.Connection"); $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("syec_mtv.mdb"); $conn->Open($connstr); mysql_query("set names utf8;"); $rs = new com("ADODB.RecordSet"); $rs->Open("select * from mtv_singer",$conn,3,1);echo '<?xml version="1.0" encoding="utf-8" ?>';echo '<veryhdmtvsinger>';echo '<pageinfo recordcount="2000" pagecount="48" pagesize="40" pageindex="1"/>';echo '<mtvsingerlist>';while(!$rs->eof){ $field_0=$rs->Fields(0); $field_1=$rs->Fields(1);$field_2=$rs->Fields(2); $field_3=$rs->Fields(3); $field_4=$rs->Fields(4); $field_5=$rs->Fields(5); $field_6=$rs->Fields(6); echo "<mtv singerid='$field_0' singercid='$field_1' singer='$field_2' singersex='$field_3' singerarea='$field_4' singerimg='http://192.168.252.66/$field_5' singersid='http://192.168.253.34:103?sid=$field_6' />";$rs->MoveNext(); }echo '</mtvsingerlist>';echo '</veryhdmtvsinger>';
明らかに adodb ですが、なぜ mysql_query があるのですか?
$rs->Open("select * from mtv_singer ",$conn,3,1);
明らかに次のようになるはずです:
$rs = $conn->Execute('select * from mtv_singer')
mysql_query("set names utf8;");
$rs->Open("select * from mtv_singer",$conn,3,1);
$rs = $conn->Execute( ' select * from mtv_singer')
データベースの $field_2 フィールドの内容が中国語になっています。追加するとエラーが報告されます。ありがとうございます
chrome:
このページには次のエラーが含まれています。
行 1、列 1 のエラー: ドキュメントが空です
以下は最初のエラーまでのページのレンダリングです
ff:
XML 解析エラー: ドキュメント要素の後に非推奨のコンテンツがあります
場所: http://localhost/mtv/ singer.php 行: 2、列: 1:
utf-8 XML ドキュメントを出力する必要がありますが、Access には utf-8 文字セットがまったくありません
エンコード変換を行わないと、間違いなくXML ドキュメントの解析エラーである可能性があります