我整天都在研究这个问题,我无法轻视它,所以我想问问经验丰富的专业人士!
本质上,如果我删除 XML 连接线(顶部的前四个),我的“INSERT INTO”语句工作(使用静态值),如果我不删除它们,我不会收到来自 MySQL / PHP 的错误消息......他们根本不工作。
数据库已全部设置为在所有字段上接受空值(暂时),并且它们现在都是 VARCHAR ......直到我能弄清楚发生了什么。
XML 提要似乎可以毫无问题地连接,因为页面需要很长时间才能加载,并且当我 ECHO 输出时,所有正确的值都会输入。
最需要注意的是,当我回显 INSERT INTO 命令时,然后将其复制并粘贴到 PHP My Admin 中……实际的插入行工作得非常好……就在打开 XML 时;它不起作用。
有谁知道为什么我似乎无法使用:
$result = mysqli_query($cxn, $query);
连接到 XML 提要后?
$context = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
$url = "https://thedatastream.xml";
$xml = file_get_contents($url, false, $context);
$xml = simplexml_load_string($xml);
foreach ($xml->row as $item) {
$partNumber = strval(escape($item->PartNumber));
$partName = strval(escape($item->Name));
$partBrand = strval(escape($item->Manufacturer));
$partCategory = strval(escape($item->CategoryName));
$partGroup = strval(escape($item->Group));
$partQty = intval(escape($item->Quantity));
$partCostEx = floatval(escape($item->PriceCostEx));
$partRetailEx = floatval(escape($item->PriceRetailEx));
$partDesc = strval(escape($item->Description));
$partHTMLDesc = strval(escape($item->HTMLDescription));
$partImg = strval($item->image_large);
$partPDF = strval($item->PDFURL);
$partUpdated = strval(escape($item->StockRecordUpdated));
$partETA = strval($item->ETADate);
$partETAStatus = strval($item->ETAStatus);
$query15 = "INSERT INTO `downloadTbl` (`partNumber`, `partName`, `Manufacturer`, `CategoryName`, `Group`, `Unit`, `PriceCostEx`, `PriceRetailEx`, `Description`, `HTMLDescription`, `image_large`, `PDFURL`, `StockRecordUpdated`, `ETADate`, `ETAStatus`) VALUES ('".$partNumber."', '".$partName."', '".$partBrand."', '".$partCategory."', '".$partGroup."', '".$partQty."', '".$partCostEx."', '".$partRetailEx."', '".$partDesc."', '".$partHTMLDesc."', '".$partImg."', '".$partPDF."', '".$partUpdated."', '".$partETA."', '".$partETAStatus."')";
$result15 = mysqli_query($cxn, $query15);
}