gpt4 book ai didi

php - 如何将此 xml feed 导入到 sql 中并自动更新?

转载 作者:行者123 更新时间:2023-11-29 23:48:28 24 4
gpt4 key购买 nike

我有一个小问题,我在互联网上找不到任何结果。

我的老板有一个来自他的产品提供商的 xml feed,他要求我将 xml 链接中的所有数据插入到 mysql 网站数据库中。

所以我是这样开始的:

#database
$sql= new MySQL();
//connect to db
$host = 'localhost';
$user = 'user';
$pass = 'pass';
$db = 'dbname';

$sql = mysql_connect ($host, $user, $pass) or die("Error - Unable to Connect");

mysql_select_db($db) or die("Error- Unable to find database");

// specify url of xml file

$url = "thehttpofurlproducts";

// get xml file contents

$xml = simplexml_load_file($url);

foreach ($xml->Items->Item as $item) {
$query = "INSERT INTO products (id,code,info) VALUES ($item->prod_id, $item->prod_code,$item->prod_info)";
$result = mysql_unbuffered_query($query) or die ("Error in query: $query. ".mysql_error());
}
mysql_close($connection);

他希望我将许多其他字段导入到 sql 数据库中。他想让这个实时运行,所以我使用 cronjobs。但问题是如何实时更新产品。当我第二次运行时,它给了我错误,例如重复 key 等。

xml是这样的并且不断更新:

<Message>
<EntityType>Products</EntityType>
<Items>
<Item>
<prod_id>235</prod_id>
<prod_code>xzq</prod_code>
<prod_name>Dogs</prod_name>
<prod_info><prod_info/>
<isstoc>false</isstoc>
<UM>UM</UM>
<VAT>20.00</VAT>
<prod_category>Puppies</prod_category>
<prod_subcategory>--</prod_subcategory>
<Onlineprice>0.00</Onlineprice>
<Stock>0.00</Stock>
<Weight/>
</Item>
</Items>
</MESSAGE>

最佳答案

看看MySQL's ON DUPLICATE KEY UPDATE clause 。它将允许您更新值,而不是插入具有相同值的新行。

在你的例子中你可以这样做

...
$query = "INSERT INTO products (id,code,info) VALUES ($item->prod_id, $item->prod_code,$item->prod_info) ON DUPLICATE KEY UPDATE code = $item->prod_code, info = $item->prod_info";
...

出于安全原因,我还建议您先清理查询参数,然后再将其附加到查询中。

关于php - 如何将此 xml feed 导入到 sql 中并自动更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25784336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com