Je souhaite lire le fichier XML suivant reçu de mon site e-commerce et insérer les enregistrements dans MySQL. Je l'ai essayé en utilisant simpleXML mais ça ne semble pas fonctionner.Sortie SimpleXML vers MySQL
<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>
J'ai écrit le code suivant qui fonctionne comme prévu.
<?php
$sxe = simplexml_load_file("balexp.xml");
foreach($sxe->ACCOUNT as $item) {
$mysql="insert into test.mytable values ('".$item->ACCNO."','".$item->CURRCODE."')";
echo $mysql;
}
?>
Mais j'ai une question à poser. 1) Il y a des moments où j'ai besoin de traiter 2 cartes dans la même clause ACCOUNT. Comment puis-je gérer de telles situations?
insérer dans les comptes les valeurs ('1', 'HAA_00', 'CAD', '00', '0.00', '0.00', '0.00', '1234567890208108', 'Y', 'PCAD', 'PTYCSH ',' 00000406 ',' 02 ',' 2013-03-31 ',' HAA_00 ',' CAD '); # output attendu – shantanuo
Ce n'est pas XML - il n'y a pas de noeud racine. – Quentin
php -e xmlread.php | mysql # c'est comme ça que je pousse les disques vers MySQL mais j'aimerai savoir la bonne façon. – shantanuo