SimpleXML并使用PDO将数据插入MySQL

时间:2017-01-31 08:04:02

标签: php mysql curl simplexml simplexml-load-string

我使用SimpleXML从需要身份验证的源获取XML数据。使用cURL我已经能够取回结果。但是,当我试图将数据导入MySQL数据库时,没有插入任何内容。

现在我认为是因为我没有对XML数据做过些什么。但是,我是XML数据的新手,并且一直使用数据库的东西,所以可以提供一些帮助。

我环顾四周,我可能会在这里复制另一个问题,但我的困惑在于我所看到的。如果我能弄清楚"为什么",我将进入"怎么"!

以下是我得到的输出:

SimpleXMLElement Object
(
    [bookingDataResponse] => SimpleXMLElement Object
        (
            [bookingDataResult] => <Bookings><SupplierCode>ABCD</SupplierCode><ServiceName>Service 1</ServiceName><UnitCode>ABC123</UnitCode></Bookings><Bookings><SupplierCode>XYZ</SupplierCode><ServiceName>Service 2</ServiceName><UnitCode>XYZ123</UnitCode></Bookings>
        )

)

我认为我需要转换上面的结果,然后将数据插入到数据库中。然而,这就是我被困住的地方。

我将使用PDO和foreach将数据导入数据库,但是到达那一点的任何帮助都是非常有用的人。

干杯

UPDATE @ 11:18GMT: 此更新涵盖了我编码的数据库插入:

$servername = "xxx.xxx.xxx.xxx";
$username = "username";
$password = "password";
$dbname = "myDatabase";

$db_cstr = "mysql:host=" . $servername . "; dbname=" . $dbname;

$conn=new PDO($db_cstr, $username,$password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

foreach ($parser->bookingDataResponse->bookingDataResult->Bookings as $row) 
{
   $SupplierCode = ($row->SupplierCode);
   $UnitCode = ($row->UnitCode);


   $stmt = $conn->prepare("INSERT INTO `bookingData` (`SupplierCode`, 'UnitCode') VALUES (?,?)");
   $stmt->execute(array($SupplierCode,$UnitCode));

}

0 个答案:

没有答案