php - 将对象数组存储到mysql数据库

标签 php mysql arrays object

这是我的任务。我已经解析了一个 xml 文档并将其所有数据存储在一个数组中。数组格式为

Array(
    [0]=> deals Object(
        [deal_id]=>... 
        [deal_title]=>...
    )
    [1]=> deals Object(
        [deal_id]=>....
        [deal_title]=>...
    )
)

我需要做的是将每个对象的值存储在 mysql 数据库中,但并非所有对象的标签都应存储在同一个数据表中。 我首先创建数组的原因是同一个 php 文件将解析 xml,然后将值插入数据库中,或者如果数据库中已存在具有相同 deal_id 的条目,则会更新相应的表。所以我认为将 xml 放在数组中将有助于进一步检查代码。 如果有人有不同的建议,我会很高兴听到..

提前致谢!!!

<?xml version="1.0" encoding="UTF-8"?>
<deals>
<deal>
<id>1</id>
<title>title</title>
<city>city<city>
<price>20</price>
<url>http://....</url>
<previous_price>30</previous_price>
<discount> 10</discount>
<image>http://....</image>
<description> description</description>
<purchases> 1</purchases>
<address>address</address>
<latitude>30.5666</latitude>
<longitude>403.6669</longitude>
<start>datetime</start>
<end>datetime</end>
<active>true</active>
<category>category</category>
<type>type</type>
</deal>
</deals>

这是xml文件结构

最佳答案

这会做你需要的:

foreach ($array as $deal) {
    $title = mysql_real_escape_string($deal['deal_title']);
    $id = int($deal['deal_id']);
    if ($id) {
        $query = "INSERT INTO deals (id, title) VALUES ($id, '$title') ON DUPLICATE KEY UPDATE deals SET title = '$title' WHERE id = $id";
        mysql_query($query);
    } else {
        echo "ID is not a valid integer.";
    }
}

关于php - 将对象数组存储到mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6996244/

相关文章:

php - adduser_process.php 不向 MySQL 表中添加信息

mysql - 如何在触发器中使用变量作为列名

c++ - 我的数组的长度是多少?

php - 应用程序代码重新设计以减少编号。从性能角度看数据库命中率

php - PHP Curl随机挂起

mysql - 如何连接 3 个表,其中一个表映射 id 来自另外两个表?

php - laravel 表结构显示最喜欢的文章和较少的 View

python - Numpy:创建 3D 数组的矢量化操作

javascript - React - 映射数组未将 Prop 正确传递给子组件

jquery表的php过滤函数