Import کردن یک فایل در بانک اطلاعاتی

Army.Hidden

Active Member
سلام دوستان
من چند روز پیش سرور سایتم رو تغییر دادم و اطلاعات رو به سرور جدید منتقل کردم.
ولی به دلیل این که حجم بانک اطلاعاتی سایت بالا بود نشد از طریق Import کردن در PHPMyadmin اطلاعات رو درون بانک اطلاعاتی جدید قرار بدم.
حالا من اسکریپتی میخوام که اطلاعات یک فایل sql رو به صورت کامل وارد یک بانک اطلاعاتی کنم.
راستی من اسکریپت میخوام ، دوستان پاسخ ندن که فایل php.ini رو ویرایش کنم.

دوستان اگه کدی آماده دارن قرار بدن.
من خودم اصلا وقت کد نویسی ندارم .
ممنون میشم
 

ziXet

مدیر انجمن PHP/MYSQL
سلام دوستان
من چند روز پیش سرور سایتم رو تغییر دادم و اطلاعات رو به سرور جدید منتقل کردم.
ولی به دلیل این که حجم بانک اطلاعاتی سایت بالا بود نشد از طریق Import کردن در PHPMyadmin اطلاعات رو درون بانک اطلاعاتی جدید قرار بدم.
حالا من اسکریپتی میخوام که اطلاعات یک فایل sql رو به صورت کامل وارد یک بانک اطلاعاتی کنم.
راستی من اسکریپت میخوام ، دوستان پاسخ ندن که فایل php.ini رو ویرایش کنم.

دوستان اگه کدی آماده دارن قرار بدن.
من خودم اصلا وقت کد نویسی ندارم .
ممنون میشم
بهترین راه اینه که فایل sql رو بفرستی برا پشتیبانی فنی سرور اونا واست ایپمورت کنن
 

P.H.P

Member
سلام

فکر میکنم استفاده از bigdump خیلی بهتر باشه

کد:
http://www.ozerov.de/bigdump.php

با استفاده از ایجکس لود میکنه فایل sql رو و جدول به جدول- رکورد به رکورد به بانک اطلاعاتی اضافه میکنه

من تا 700 مگ رو تست کردم، timeout هم نداشته

موفق
 

MMSHFE

Active Member
با سلام، اين كد رو امتحان كنيد:
PHP:
<?PHP
    $server='localhost';
    $user='root';
    $pass='';
    $db='dbname';
    mysql_connect($server,$user,$pass);
    mysql_select_db($db);
    $filename='db.sql';
    $file=fopen(filename,'r');
    $query='';
    while(!feof($file))
    {
        $line=fgets($file);
        $query.=$line.'\r\n';
        if(strrpos($line,';')===(strlen($line)-1))
        {
            $result=mysql_query($query);
            $query='';
        }
    }
    fclose($file);
?>
اميدوارم مشكلتون برطرف بشه. متغيرها رو با مقدار مناسب جايگزين كنيد.
موفق و مؤيد باشيد.
 
آخرین ویرایش:

Masoud1365

مدیر انجمن
روی هر دوتا سرور اگر که cpanel داشته باشید نیاز به ترنسفر دستی ندارید کل عملیات در کمتر از 5 دقیقه امکانپذیر هست !
 

ziXet

مدیر انجمن PHP/MYSQL
با سلام، اين كد رو امتحان كنيد:
PHP:
<?PHP
    $server='localhost';
    $user='root';
    $pass='';
    $db='dbname';
    mysql_connect($server,$user,$pass);
    mysql_select_db($db);
    $filename='db.sql';
    $file=fopen(filename,'r');
    $query='';
    while(!feof($file))
    {
        $line=fgets($file);
        $query.=$line.'\r\n';
        if(strrpos($line,';')===(strlen($line)-1))
        {
            $result=mysql_query($query);
            $query='';
        }
    }
    fclose($file);
?>
اميدوارم مشكلتون برطرف بشه. متغيرها رو با مقدار مناسب جايگزين كنيد.
موفق و مؤيد باشيد.
عزیز مشکل اینکه که اگه حجم دیتابیس خیلی بالا باشه time execute میشه!
 

Army.Hidden

Active Member
من با bigdump درستش کردم و مشکلی هم پیش نیومد.
مشکل من حجم دیتابیس بود وگرنه خودم اسکریپتی براش نوشته بودم.
ولی فکر کنم اگر set_time_limit رو برابر با 0 قرار بدم دیگه مشکلی نداشته باشه.
ولی تست نکردم
 
آخرین ویرایش:

MMSHFE

Active Member
با سلام، كدي كه بنده گذاشتم هم به صورت جداگانه دستورات MySQL رو اجرا ميكرد. تنها تفاوتش در اين بود كه از AJAX براي نمايش روند كار استفاده نميكنه كه اون هم قابل حله. البته BigDump هم واقعاً اسكريپت خوبي هست و كارش رو به زيبايي انجام ميده.
موفق و مؤيد باشيد.
 

MMSHFE

Active Member
عزیز مشکل اینکه که اگه حجم دیتابیس خیلی بالا باشه time execute میشه!
با سلام، ميخواستم بدونم كد رو شخصاً امتحان كرديد يا نه؟ ببخشيد ولي بخاطر اين ميپرسم كه اگه به كد دقت كرده باشيد، دستورات MySQL رو بصورت جداگانه اجرا ميكنه نه بصورت يكجا.
موفق و مؤيد باشيد.
 

ziXet

مدیر انجمن PHP/MYSQL
بله میدونم به صورت جدا اجرا میکنه! ولی مشکل اینه که ماکزیمم زمان اجرای هر اسکریپت معمولا 30 یا 60 ثانیه در نظر گرفته میشه ! اگه شما این برنامه رو برای یک دیتابیس حجیم به کار ببری بیش از 60 ثانیه طول میکشه و اسکریپت متوقف میشه و کار ایمپورت کردن نصفه میمونه
مگر اینکه اون مکانی که تا اونجا درست ایمپورت شده رو یجا ذخیره کنی و در چند مرحله ایمپورت رو انجام بدی
دلیل استفاده از ای جکس هم همین بوده
 

Army.Hidden

Active Member
ولی ziXet درست میگه. ( اسمتون رو نمیدونستم :دی )
دلیل این که از Ajax استفاده میشه در این گونه اسکریپت ها اینه.
واجب شد بشینم bigdump رو انالیز کنم.
 

MMSHFE

Active Member
بله میدونم به صورت جدا اجرا میکنه! ولی مشکل اینه که ماکزیمم زمان اجرای هر اسکریپت معمولا 30 یا 60 ثانیه در نظر گرفته میشه ! اگه شما این برنامه رو برای یک دیتابیس حجیم به کار ببری بیش از 60 ثانیه طول میکشه و اسکریپت متوقف میشه و کار ایمپورت کردن نصفه میمونه
مگر اینکه اون مکانی که تا اونجا درست ایمپورت شده رو یجا ذخیره کنی و در چند مرحله ایمپورت رو انجام بدی
دلیل استفاده از ای جکس هم همین بوده
با سلام، ممنون از نكته اي كه يادآور شديد. سعي ميكنم تو همين چند روز يك نسخه كم حجم از همين اسكريپت رو كه به صورت ajax عمل ميكنه، آماده كنم و همينجا بگذارم. خوشحال ميشم درمورد اون نظرتون رو بدونم. موفق و مؤيد باشيد.
 

MMSHFE

Active Member
با سلام، دوستان الوعده وفا. يك كد براي اينكار نوشتم كه با AJAX كار ميكنه و نسبت به BigDump خيلي ساده تر نوشته شده ولي سرعتش يكم كمتر از BigDump هست ولي كاملاً با AJAX كار ميكنه و حجم بالا رو هم پشتيباني ميكنه. بايد فايلهاي SQL رو كنارش بگذاريد و خودش امكان انتخاب فايل ازبين چند فايل رو داره. بعلاوه روند پيشرفت رو هم برحسب بايت و همچنين حجم كل فايل رو نشون ميده. نكته ديگه اينكه براي بالارفتن سرعت، خطوط توضيحي رو در فايل SQL ناديده ميگيره. البته ميشه روش كار كنيم و بهينه تر كنيمش (مثلاً هر 10 عدد Query رو يكجا بفرستيم). خوشحال ميشم بررسي كنيد و نظرتون رو بگين.
موفق و مؤيد باشيد.
 

پیوست ها

  • ajaximport.zip
    2.4 کیلوبایت · بازدیدها: 26

saeid223

New Member
سلام

فکر میکنم استفاده از bigdump خیلی بهتر باشه

کد:
http://www.ozerov.de/bigdump.php
با استفاده از ایجکس لود میکنه فایل sql رو و جدول به جدول- رکورد به رکورد به بانک اطلاعاتی اضافه میکنه

من تا 700 مگ رو تست کردم، timeout هم نداشته

موفق

ببخشید من سوالو تکمیل تر میکنم
منم دنبال همچین اسکریپتی می گشتم
اما میخوام که از فایلی روی اینترنت ایمپورت که کار منم ساده تر بشه
اخه فایل .sql من روی هاست قرار داره و نزدیک یک مگابایت حجم داره
میخوام لینک رو به اسکریپت بدم خودش ایمپورت کنم
ممنون میشم کمکم کنید:rose:
 

saeid223

New Member
شما میتونید اول فایل رو توسط یک اسکریپت به سرور انتقال بدید بعد Import کنید.

لینک کمکی :
http://www.forum.phpgrp.com/showthread.php?t=22

دستت درد نکنه
اما این اسکریپت پیش و پا افتاده ای هست من به این نیاز نداشتم داداش

دوستانی که میخوان جواب بدن تو رو خدا پست ها رو درست بخونن
بابا من میخوام یه فایل بانک اطلاعاتی (با پسوند sql) که روی هاستم قرار داره داخل بانک اطلاعاتیم ایمپورت کنم
(داخل بانک اطلاعاتی فقط میشه از روی پی سی فایلی رو واسه ایمپورت کردن انتخاب کرد، اون bigdump هم فایل از روی پی سی رو داخل بانک اطلاعاتی ایمپورت میکنه)
کجای سوال من به اون چیزی که شما معرفی کردی میخورد؟:snap:
 
آخرین ویرایش:

Army.Hidden

Active Member
دستت درد نکنه
اما این اسکریپت پیش و پا افتاده ای هست من به این نیاز نداشتم داداش

دوستانی که میخوان جواب بدن تو رو خدا پست ها رو درست بخونن
بابا من میخوام یه فایل بانک اطلاعاتی (با پسوند sql) که روی هاستم قرار داره داخل بانک اطلاعاتیم ایمپورت کنم
(داخل بانک اطلاعاتی فقط میشه از روی پی سی فایلی رو واسه ایمپورت کردن انتخاب کرد، اون bigdump هم فایل از روی پی سی رو داخل بانک اطلاعاتی ایمپورت میکنه)
کجای سوال من به اون چیزی که شما معرفی کردی میخورد؟:snap:

ببخشید من سوالو تکمیل تر میکنم
منم دنبال همچین اسکریپتی می گشتم
اما میخوام که از فایلی روی اینترنت ایمپورت که کار منم ساده تر بشه
اخه فایل .sql من روی هاست قرار داره و نزدیک یک مگابایت حجم داره
میخوام لینک رو به اسکریپت بدم خودش ایمپورت کنم
ممنون میشم کمکم کنید

1- مطالب خودت رو درست بخون
2- اسکریپت های که دوستان قرار دادن هم همین کاری که شما میخواید انجام بدید رو انجام میدن ( در صورتی که فایل sql شما روی همون سرور باشه که میخواید این کار رو بکنید )
3- این گونه پست دادن اصلا جالب نیست و شخصیت شما رو زیر سوال می بره
 

saeid223

New Member
آقا دم همتون گرم مشکل ما رو حل کردید
ببخشید پست اسپم شد
آخه تو این پست یه سوالی کرده بودم که مجبور شدم پاکش کنم، چون مشکلم حل شد:rose:
مدیران عزیز لطف کنن این پست منو پاک فرمایند
 
آخرین ویرایش:
با سلام، دوستان الوعده وفا. يك كد براي اينكار نوشتم كه با AJAX كار ميكنه و نسبت به BigDump خيلي ساده تر نوشته شده ولي سرعتش يكم كمتر از BigDump هست ولي كاملاً با AJAX كار ميكنه و حجم بالا رو هم پشتيباني ميكنه. بايد فايلهاي SQL رو كنارش بگذاريد و خودش امكان انتخاب فايل ازبين چند فايل رو داره. بعلاوه روند پيشرفت رو هم برحسب بايت و همچنين حجم كل فايل رو نشون ميده. نكته ديگه اينكه براي بالارفتن سرعت، خطوط توضيحي رو در فايل SQL ناديده ميگيره. البته ميشه روش كار كنيم و بهينه تر كنيمش (مثلاً هر 10 عدد Query رو يكجا بفرستيم). خوشحال ميشم بررسي كنيد و نظرتون رو بگين.
موفق و مؤيد باشيد.

سلام
تست كردم كار نكرد.
شما تو فايل import.php دستور include_once('config.php'); گذاشتيد ولي فايلي به اسم config تو برنامتون نيست.
 

جدیدترین ارسال ها

بالا