XML API到PHP!新开发人员,不知道如何做到这一点


XML API to PHP! New developer, no idea how to do this

我认为这是一个简单的问题。不幸的是,我不知道如何让它发挥作用。

我有一个xml数据表,看起来像这样:

<leads>
    <leadDetails>
        <lead_id>3886961</lead_id>
        <campaign_id>1173</campaign_id>
        <campaign_name>Tesco vs Argos - Submit (UK)</campaign_name>
        <subID>N/A</subID>
        <gateway>yes</gateway>
        <ip>109.155.249.140</ip>
        <referring_url>http://adworkmedia.com/gTemplate.php?GID=1514&pubID=2312&sid=&ST=
        </referring_url>
        <date>2012-03-24 07:19:07</date>
        <payout>$0.70</payout>
        <status>Credited</status>
    </leadDetails>
</leads>

我应该补充一点,这个XML表不是在我的服务器上托管的,而是在我获得新线索时由我的网络动态更新的。如果需要,请随时问我更多问题。

我的问题是:如何编写一个代码来读取XML页面,并将日期、IP和campaign_name上传到mySQL表中。

谢谢!

嗨。

           if( $xml = simplexml_load_file("the_url_of_xml"))
            {
              foreach($xml->leads->leadDetails as $detail) 
              {   
                $camp_id = $detail->campaign_id;
                $camp_name = $detail->campaign_name;
                $sql = "INSERT INTO myTable (id,name) VALUES ('$camp_id','$camp_name')";//AND so on
                mysql_query($sql);
            }
           }

这是一个很好的入门教程教程链接

这只是您参考的起点,使用SimpleXML和PDO:

$xml = simplexml_load_file('http://yourhost.com/somefile.xml');
$pdo = new PDO('mysql:dbname=test;host=localhost', 'user', 'pass');
foreach ($xml->leadDetails as $lead) {
    $stmt = $pdo->prepare('INSERT INTO table (createdAt, ip, campaign_name) VALUES (NOW(), ?, ?)');
    $stmt->execute(array(
        $_SERVER['REMOTE_ADDR'],
        $lead->campaign_name
    ));
}

JSON在我看来是一种更好的格式,但对于XML来说,它非常简单。

<?php
$con = mysql_connect("username","password","host");
mysql_select_db("database_name",$con);
$xmlObj = new SimpleXMLElement($xml); //replace $xml with your XML string.
foreach($xmlObj->leadDetails as $details){
    $date = $details->date;
    $ip = $details->ip;
    $campaign_name = $details->campaign_name;
    mysql_query("INSERT INTO `table_name` (`date`,`ip`,`campaign_name`) VALUES ('$date','$ip','$campaign_name')",$con);
}
?>
相关文章: