Как лучше организовать операции импорт/экспорт из/в MySQL в формате XML с помощью PHP?

Здравствуйте.
Пишу маленький интернет-магазин для себя, учусь :)
Задача следующая: нужно организовать экспорт из БД MySQL в файл xml при помощи PHP. А также сделать импорт продуктов из того же или другого xml-файла обратно в БД MySQL.

Т.к. только учусь, то познания в этом вопросе очень небольшие. Помогите советом - как лучше организовать данные операции.

Прикрепляю код, который экспортировал с помощью PhpMyAdmin:

<?xml version="1.0" encoding="utf-8"?>

<pma_xml_export version="1.0" xmlns:pma="<a href="http://www.phpmyadmin.net/some_doc_url/">http://www.phpmyadmin.net/some_doc_url/</a>">
   
    <pma:structure_schemas>
        <pma:database name="LifeExampleShop" collation="cp1251_general_ci" charset="cp1251">
            <pma:table name="product">
                CREATE TABLE `product` (
                  `id` int(11) NOT NULL AUTO_INCREMENT,
                  `cat_id` int(11) NOT NULL,
                  `name` varchar(255) CHARACTER SET utf8 NOT NULL,
                  `desc` text NOT NULL,
                  `price` float NOT NULL,
                  `url` varchar(255) NOT NULL,
                  `image_url` varchar(255) NOT NULL,
                  `code` varchar(255) NOT NULL,
                  `material` varchar(255) NOT NULL,
                  `factory` varchar(255) NOT NULL,
                  `color` varchar(255) NOT NULL,
                  `destination` varchar(255) NOT NULL,
                  `size` varchar(255) NOT NULL,
                  `type` varchar(255) NOT NULL,
                  `country` varchar(255) NOT NULL,
                  `surface` varchar(255) NOT NULL,
                  `picture` varchar(255) NOT NULL,
                  `style` varchar(255) NOT NULL,
                  PRIMARY KEY (`id`)
                ) ENGINE=MyISAM AUTO_INCREMENT=90 DEFAULT CHARSET=cp1251;
            </pma:table>
        </pma:database>
    </pma:structure_schemas>

  
    <database name="LifeExampleShop">
        <table name="product">
            <column name="id">87</column>
            <column name="cat_id">5</column>
            <column name="name">jkl</column>
            <column name="desc">k</column>
            <column name="price">567</column>
            <column name="url">jkl</column>
            <column name="image_url">none.png</column>
            <column name="code">lll</column>
            <column name="material">material </column>
            <column name="factory">factory2</column>
            <column name="color">color1</column>
            <column name="destination">destination0</column>
            <column name="size">30x35</column>
            <column name="type">type4</column>
            <column name="country">country5</column>
            <column name="surface">surface6</column>
            <column name="picture">picture7</column>
            <column name="style"></column>
        </table>
        <table name="product">
            <column name="id">88</column>
            <column name="cat_id">1</column>
            <column name="name">про</column>
            <column name="desc">р</column>
            <column name="price">1324</column>
            <column name="url">pro</column>
            <column name="image_url"></column>
            <column name="code">fghvbhjkghk</column>
            <column name="material"></column>
            <column name="factory"></column>
            <column name="color"></column>
            <column name="destination"></column>
            <column name="size">30x35</column>
            <column name="type"></column>
            <column name="country"></column>
            <column name="surface"></column>
            <column name="picture"></column>
            <column name="style"></column>
        </table>
    </database>
</pma_xml_export>
  • Вопрос задан
  • 4193 просмотра
Решения вопроса 1
egor_nullptr
@egor_nullptr
Примерно так, и можно не мучать php
mysqldump -u $user -p$password $database $products_table -t -X > products_dump.xml
.....
mysql -u $user -p$password $database -e "load xml local infile 'products_dump.xml' into table $products_table"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы