انتقال اطلاعات از csv به جدولی در Mysql

گاه پیش می‌آید بین داده‌های دو نرم‌افزار پلی بزنیم و اطلاعات را از دیتابیس یکی به دیگری منتقل کنیم؛ یا جدولی در اکسل داریم که دلمان می‌خواهد به آسانی به دیتابیس سایتمان منتقل گردد. در این برنامه می خواهیم فایل csv را که خروجی بسیاری از نرم افزارهاست (فایل اکسل را نیز می تواند با این پسوند ذخیره کرد) ، به دیتابیس Mysql منتقل کنیم. این برنامه از کاراکترهای فارسی نیز پشتیبانی می‌کند.

برنامه به دو بخش اصلی تقسیم می‌شود
الف) ابتدا باید فایل csv را در سایت آپلود کنیم: این کار را می توان با روشهای مختلفی انجام داد. پیشنهاد من استفاده از کتابخانه جی‌کوئری simpleUpload.min.js است که توسط آن می توان به آسانی فایل را آپلود نمود و اندازه و نوع فایل را نیز مدیریت کرد.
در مثال زیر بلافاصله پس از انتخاب فایل، پردازش انجام می‌گیرد؛ چنانچه فرمت فایل csv نبود یا حجم آن از 500 کیلوبایت بیستر بود اجازه بارگزاری نمی‌دهد

ب) توسط تابع fgetcsv در php محتوای فایل آپلود شده را میخوانیم و در جدول دیتابیس insert کنیم.
تابع زیر را که به کمک fgetcsv نوشته ایم به ما کمک می کند تا با دادن مسیر فایل، محتوای فایل را در یک آرایه (دو بعدی) بریزیم.
مشکلی که ممکن است با آن مواجه شوید در نمایش کاراکترهای فارسی یا یونیکد است که به کمک تابع iconv و همانند مثال می توان آن را برطرف ساخت. همچنین جهت داشتن دیتابیسی یک‌دست‌تر و در صورت نیاز نیز بهتر است اشکالات نوشتاری فایل را در این مرحله اصلاح کنیم مثلا تبدیل «ي» به «ی» و «ك» به «ک».

حالا گام های زیر را بر می داریم.

index.html :: این فایل شامل یک input از نوع ارسال فایل است که با فراخوانی دو کتابخانه جی کوئری و فایل transfer.php اقدام به ارسال فایل csv به دیتابیس می کند

transfer.php :: در این صفحه کار نخست ما آپلود فایل csv و سپس برابری آن با یک آرایه جهت انتقال به دیتابیس است. کاری که در این مثال انجام می دهیم تا قبل از INSERT به جدول است چرا که جدول مورد نظرمان در MYSQL را باید بسته به فرمت csv و نیاز خودمان بسازیم

0 دیدگاه

دیدگاه خود را بنویسید