SimpleXML и вставка данных в MySQL с помощью PDO
Я использовал 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 для передачи данных в базу данных, но любая помощь по достижению этой точки была бы очень полезна, ребята.
ура
ОБНОВЛЕНИЕ @ 11:18 ГМТ: Это обновление охватывает вставку базы данных, которую я кодировал:
$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));
}