-3
私のeコマースサイトから受け取った以下のXMLファイルを読んで、そのレコードをMySQLに挿入します。私はsimpleXMLを使って試しましたが、うまく動作していないようです。MySQLへのSimpleXML出力
<ACCOUNT NumCrds="1">
<ACCNO>HAA_00</ACCNO>
<CURRCODE>CAD</CURRCODE>
<ACCTYPE>00</ACCTYPE>
<FINAMT>0.00</FINAMT>
<BLKAMT>0.00</BLKAMT>
<AMTAVL>0.00</AMTAVL>
<CARD>
<PANNU>1234567890208108</PANNU>
<PRIMARY>Y</PRIMARY>
<CRDPRODUCT>PCAD</CRDPRODUCT>
<PROGRAMID>PTYCSH</PROGRAMID>
<CUSTCODE>00000406</CUSTCODE>
<STATCODE>02</STATCODE>
<EXDATE>2013-03-31</EXDATE>
<CRDACCNO>HAA_00</CRDACCNO>
<CRDCURRCODE>CAD</CRDCURRCODE>
</CARD>
</ACCOUNT>
<ACCOUNT NumCrds="1">
<ACCNO>XYZCESFULL9900</ACCNO>
<CURRCODE>CAD</CURRCODE>
<ACCTYPE>00</ACCTYPE>
<FINAMT>0.00</FINAMT>
<BLKAMT>0.00</BLKAMT>
<AMTAVL>0.00</AMTAVL>
<CARD>
<PANNU>0987654321756990</PANNU>
<PRIMARY>Y</PRIMARY>
<CRDPRODUCT>PCAD</CRDPRODUCT>
<PROGRAMID>PTYCSH</PROGRAMID>
<CUSTCODE>00000520</CUSTCODE>
<STATCODE>00</STATCODE>
<EXDATE>2013-04-30</EXDATE>
<CRDACCNO>XYZCESFULL9900</CRDACCNO>
<CRDCURRCODE>CAD</CRDCURRCODE>
</CARD>
</ACCOUNT>
期待通りに動作する次のコードを記述しました。
<?php
$sxe = simplexml_load_file("balexp.xml");
foreach($sxe->ACCOUNT as $item) {
$mysql="insert into test.mytable values ('".$item->ACCNO."','".$item->CURRCODE."')";
echo $mysql;
}
?>
しかし、私には1つの質問があります。 1)同じACCOUNT句で2枚のカードを処理する必要がある場合があります。どのように私はそのような状況に対処しますか?
アカウントに値を挿入する( '1'、 'HAA_00'、 'CAD'、 '00'、 '0.00'、 '0.00'、 '0.00'、 '1234567890208108'、 'Y'、 'PCAD'、 'PTYCSH '、' 00000406 '、' 02 '、' 2013-03-31 '、' HAA_00 '、' CAD '); #予想される出力 – shantanuo
これはXMLではありません。ルートノードはありません。 – Quentin
php -e xmlread.php | mysql#これは私がMySQLにレコードをプッシュする方法ですが、正しい方法を知りたいと思います。 – shantanuo