Import کردن XML به MySQL در PHP

  • آپدیت شده در تاریخ

در برنامه نویسی وارد کردن یا همان Import کردن XML به MySQL می تواند بصورت دستی انجام شود.اما, در این آموزش PHP , قصد داریم به شما نحوه insert کردن داده های فایل XML به دیتابیس MySQL را توسط PHP نشان بدیم.

Node ها یا همان تگ های داخلی فایل XML به عنوان ستون های جدول دیتابیس درنظر گرفته می شوند و بنابراین داده های هر یک از node ها به عنوان مقادیر در جدول وارد خواهند شد.

در این مثال, یک فایل input.xml دارید که شامل آیتم هایی با node های فرزند به نام های title , description , links , keywords را دارند. این فایل برای دریافت آبجکت  فایل به منظور پردازش داده های XML استفاده می شود.

سپس, کد PHP هر یک از این آیتم های خوانده شده را برای دریافت node های فرزند و داده های آنها در یک حلقه تکرار می شوند. با این داده ها, کوئری insert ساخته و برای کپی داده های XML در دیتابیس اجرا می شود.

فایل داده XML

XML زیر به عنوان ورودی به اسکریپت php ما برای Import کردن XML به MySQL استفاده شده است. این فایل شامل ۳ المنت XML با node های فرزند title , description , links , keywords هستند.

همانطور که نود های فرزند به عنوان ستون های جدول دیتابیس درنظر گرفته می شود, یک جدول با همین نام ها در دیتابیس ایحاد کردیم. زمانی که این ورودی XML را تجزیه (parse) کردیم, داده های بین این node های فرزند در ستون های همنام خود در دیتابیس قرار می گیرند.

و کد SQL برای ساخت جدول در دیتابیس :

تجزیه XML و Import کردن XML به MySQL توسط PHP

در این کد PHP , ما از تابع simplexml_load_file برای parse کردن و ساخت هندل فایل استفاده می کنیم. با استفاده از این handle آیتم های XML در هر بار تکرار حلقه خوانده می شود. سپس کوئری insert را با استفاده از داده های خوانده شده را می سازیم.

بعد از اضافه کردن داده ها در دیتابیس, یک پیام مبنی بر اینکه چند سطر جدید در دیتابیس اضافه شده است, به کاربر نمایش می دهیم. در صروت وجود هرگونه خطایی, متن پیام خطا به کاربر نشان داده می شود.

نمایش خروجی Import کردن XML به MySQL در PHP

این کد شرایط پیام برگشتی بعد از انجام عملیات افزودن داده های XML در جدول دیتابیس را بررسی می کند و بنابر پیام برگشتی نتیجه کوئری insert را با استایل های خاص خود به کاربر نمایش می دهد.

امیدوارم از آموزش Import کردن XML به MySQL در PHP نهایت استفاده را برده باشید .

برای دانلود سورس کد کامل این آموزش از باکس دانلود استفاده کنید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۲)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. بهمن ۱۲ اردیبهشت ۱۳۹۹

    سلام
    چطور میتونم یه فایل xml مثل نمونه کد زیر رو در دیتابیس وارد کنم؟

    {“Table”:[{“PersonelCode”:112543,”FieldName”:”SalaryYear”,”Caption”:”سال”,”FieldValue”:”1398″,”FieldType”:1},{“PersonelCode”:112543,”FieldName”:”SalaryMonth”,”Caption”:”ماه”,”FieldValue”:”11″,”FieldType”:1},{“PersonelCode”:112543,”FieldName”:”PslCode”,”Caption”:”كد پرسنلي”,”FieldValue”:”112543″,”FieldType”:1},{“PersonelCode”:112543,”FieldName”:”FullName”,”Caption”:” نام و نام خانوادكي”,”FieldValue”:”احمد مرادی”,”FieldType”:1},{“PersonelCode”:112543,”FieldName”:”OrganizationUnitName”,”Caption”:”نام واحد سازماني”,”FieldValue”:”دفتر آمار و اطلاعات”,”FieldType”:1},{“PersonelCode”:112543,”FieldName”:”Header”,”Caption”:”تيتر گزارش”,”FieldValue”:”شرکت “,”FieldType”:1},{“PersonelCode”:112543,”FieldName”:”BankName”,”Caption”:” نام بانك”,”FieldValue”:”صادرات”,”FieldType”:1},{“PersonelCode”:112543,”FieldName”:”BranchName”,”Caption”:” نام شعبه”,”FieldValue”:”صفائیه”,”FieldType”:1},{“PersonelCode”:112543,”FieldName”:”BranchCode”,”Caption”:” كد شعبه”,”FieldValue”:”3520″,”FieldType”:1},{“PersonelCode”:112543,”FieldName”:”AccountNumber”,”Caption”:”شماره حساب”,”FieldValue”:”01067456348″,”FieldType”:1}],”Table1″:[{“PersonelCode”:112543,”FieldName”:”MonthlyFunction”,”Caption”:”كاركرد ماهانه”,”FieldValue”:”30 روز”,”FieldType”:2},{“PersonelCode”:112543,”FieldName”:”FunctionType”,”Caption”:”نحوه كاركرد”,”FieldValue”:”روزانه”,”FieldType”:2},{“PersonelCode”:112543,”FieldName”:”UsualOverTimeTime”,”Caption”:”زمان اضافه كاري”,”FieldValue”:”0′ : 90″,”FieldType”:2},{“PersonelCode”:112543,”FieldName”:”HolidayOverTimeTime”,”Caption”:” زمان تعطيل كاري”,”FieldValue”:”0′ : 3″,”FieldType”:2},{“PersonelCode”:112543,”FieldName”:”SumDeservedVacationTime”,”Caption”:”مرخصي استحقاقي”,”FieldValue”:”‘0 : 0 – 3 روز”,”FieldType”:2}],”Table2″:[{“PersonelCode”:112543,”FieldName”:”SumSalaryAndProfit”,”Caption”:”مجموع حقوق و مزايا”,”FieldValue”:”107,084,340″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”MonthlySalary”,”Caption”:”حقوق مبنا”,”FieldValue”:”28,329,650″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”UsualOverTimeAmount”,”Caption”:”اضافه کاری عادی”,”FieldValue”:”28,216,145″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”HolidayOverTimeAmount”,”Caption”:”تعطيل كاري”,”FieldValue”:”940,538″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”WorkLawTraffic”,”Caption”:”كمك هزينه مسكن”,”FieldValue”:”6,667,614″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”WorkLawTechnicalRight”,”Caption”:”فوق العاده شيفت كاري”,”FieldValue”:”7,058,243″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”WorkLawWorkTension”,”Caption”:”فوق العاده سختي كار”,”FieldValue”:”70,200″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”WorkLawAbsorptionRight”,”Caption”:”فوق العاده جذب”,”FieldValue”:”14,763,060″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”WorkLawSoldierLinessRight”,”Caption”:”فوق العاده سرپرستي”,”FieldValue”:”2,634,840″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”WorkLawPostRight”,”Caption”:”مابه التفاوت”,”FieldValue”:”357,720″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”WorkLawAnnuityProfit”,”Caption”:”فوق العاده منطقه”,”FieldValue”:”3,735,810″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”WorkLawLaboringRightAmount”,”Caption”:”بن كارگري”,”FieldValue”:”1,900,000″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”WorkLawOffspringRightAmount”,”Caption”:”كمك هزينه عائله مندي”,”FieldValue”:”3,033,620″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”StatementOptionalTitle4″,”Caption”:”کمک هزینه تلفن همراه”,”FieldValue”:”300,000″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”StatementOptionalTitle3″,”Caption”:”کمک هزینه ایاب و ذهاب”,”FieldValue”:”2,000,000″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”مصوبه کمک هزینه خودرو”,”Caption”:”مصوبه کمک هزینه خودرو”,”FieldValue”:”8,890,140″,”FieldType”:3},{“PersonelCode”:112543,”FieldName”:”StatementOptionalTitle2″,”Caption”:”کمک هزینه غذا”,”FieldValue”:”1,276,000″,”FieldType”:3}],”Table3″:[{“PersonelCode”:112543,”FieldName”:”InsuranceAmount”,”Caption”:”بيمه تامين اجتماعي”,”FieldValue”:”7,283,550″,”FieldType”:4},{“PersonelCode”:112543,”FieldName”:”TaxAmount”,”Caption”:”ماليات”,”FieldValue”:”12,750,665″,”FieldType”:4},{“PersonelCode”:112543,”FieldName”:”SumDeduction”,”Caption”:”جمع كسور”,”FieldValue”:”20,034,215″,”FieldType”:4}],”Table4″:[{“PersonelCode”:112543,”FieldName”:”NetPayment”,”Caption”:”خالص پرداختي”,”FieldValue”:”87,050,125″,”FieldType”:5},{“PersonelCode”:112543,”FieldName”:”TaxInclusiveAmount”,”Caption”:” مشمول ماليات”,”FieldValue”:”105,003,326″,”FieldType”:5},{“PersonelCode”:112543,”FieldName”:”InsuranceInclusiveAmount”,”Caption”:”مشمول بيمه”,”FieldValue”:”104,050,720″,”FieldType”:5}],”Table5″:[{“PersonelCode”:112543,”FieldName”:”FarsiNetPayment”,”Caption”:”خالص پرداختي”,”FieldValue”:”هشتاد و هفت ميليون و پنجاه هزار و يکصد و بيست و پنج ريال”,”FieldType”:6},{“PersonelCode”:112543,”FieldName”:”OrganizationUnitName”,”Caption”:”نام واحد سازماني”,”FieldValue”:”دفتر آمار و اطلاعات”,”FieldType”:6}],”Table6″:[]}

    پاسخ
    1. حسن شفیعی ۱۲ اردیبهشت ۱۳۹۹

      سلام.
      این یک خروجی json هست و باید ابتدا با استفاده $data = json_decode($jsondata, true); اون رو به یک آرایه تبدیل کنید و بعد آن را در یک حلقه به دیتابیس insert کنید.
      قبل از آن باید جدول رو در دیتابیس ایجاد و فیلدهاش رو هم قرار بدید

      پاسخ
دوره های آموزشی