اجرای فایل sql روی سرور

اسفند ۱, ۱۳۹۲ توسط : سعید

سلام

شاید برای شما اتفاق افتاده باشه که از دیتابیس تون یک بک آپ میگیرید و میخواید روی سرور import کنید. اما بعضی وقتا به دلیل حجم بالا ،  تنظیمات PHP  اجازه نمیده فایلهای بزرگ رو آپلود کنید.برای حل این مشکل میتونید فایل رو روی سرور آپلود کنید ( مثلا با FTP ) سپس با تابع زیر این فایل رو خط به خط اجرا کنید.

این رو هم اضافه کنم که هنگامی که دیتابیس رو export میکنید یک فایل با پسوند sql بهتون میده که اگر این فایل رو با نرم افزارهای ویرایش متن باز کنید میبینید که داخلش دستورات sql نوشته شده.

خب بریم سراغ تابع :

<?php

function SplitSQL($file, $delimiter = ';')
{
	$pdo =new PDO ("mysql:host=localhost;dbname=mydb",'root','');
    if (is_file($file) === true)
    {
		$file = fopen($file, 'r');

        if (is_resource($file) === true)
        {
            $query = array();

            while (feof($file) === false)
            {
                $query[] = fgets($file);

                if (preg_match('~' . preg_quote($delimiter, '~') . '\s*$~iS', end($query)) === 1)
                {
                    $query = trim(implode('', $query));

					$pdo->query($query);

                    while (ob_get_level() > 0)
                    {
                        ob_end_flush();
                    }
                    flush();
                }

                if (is_string($query) === true)
                {
                    $query = array();
                }
            }

            return fclose($file);
        }
    }

    return false;
}

خب برای استفاده از این تابع باید آدرس فایل .sql رو که روی سرور آپلود کردید بهش پاس بدید. پارامتر دوم هم برای اینه که مشخص بشه دستورات sql با چه کاراکتری تموم میشن که در اینجا کاراکتر سمی کالن ( ; ) میباشد

امیدوارد به دردتون بخوره
موفق باشید

بازدید : ۶۳۷۱

اسفند ۲, ۱۳۹۲ @ ۱۱:۲۱ ق.ظ

سلام خسته نباشید و دمتون گرم. آقا همیشه از مطالب خوبی که مینویسی استفاده میکنیم. mvc خیلی خوب بود اگر راجعبه yii هم بنویسی یعنی تو یه مثال عملی قسمت به قسمت توضیح بدی چون راجع به کلیت yii خیلی ها گفتن. دیگه سایتت عالی تر میشه

پاسخ دادن
    سعید
    اسفند ۲, ۱۳۹۲ @ ۱۲:۴۸ ب.ظ

    سلام
    ممنون شمالطف داری
    من خودم به شخصه از فریم ورکهایی مثل yii , zend , cake ,… استفاده نمیکنم. مطالبی رو که درمورد معماری سه لایه و یا شیء گرایی مینویسم بیشتر به خاطر اینه که کاربرانی که میخوان ازاین فریم ورکهای استفاده کنن بدونن اساس کار فریم ورکها چیه.
    در مورد اکثر فریم ورکهادر اینترنت مطالب زیادی وجود داره که منابع فارسی هم زیاد هست.
    توی این سایت سعی میکنم بیشتر به مباحث پایه ای بپردازم تا همه مون به صورت پایه ای PHP رو یاد بگیریم.
    پیشنهاد منم به شما و بقیه کاربرا اینه که تا به صورت پایه ای به PHP مسلط نشدین از فریم ورکها استفاده نکنین چون فریم ورکهای اماده ( به خاطر آماده بودن و کامل بودن ) مانع این میشن که در پی اچ پی پیشرفت کنین.
    به هر حال ممنون از پیشنهادتون اگر کسی از دوستان رو پیدا کردم که مایل بود در مورد فریم ورک Yii اینجا مطلب بذاره با آغوش باز ازش پذیرایی میکنم
    موفق باشید.

    پاسخ دادن
papaniseo
خرداد ۱۱, ۱۳۹۳ @ ۳:۲۰ ب.ظ

خیلی کاربردی بود کاشکی یه جوری میشد لطف شما رو جبران کرد

پاسخ دادن
تیر ۷, ۱۳۹۳ @ ۸:۱۳ ب.ظ

باسلام یک سوال دارم،من یک فرم طراحی کردم و در قسمت اکشن فرم از کد PHP_SELF استفاده نموده ام تا درج اطلاعات فرمم را در همان صفحه به من بده اما وقتی اطلاعاتم را وارد میکنم بعداز دادن جواب اطلاعات اگر صفحه را رفرش کنم اطلاعاتم را دوباره در دیتابیس ثبت میکنه چکار کنم که اگر صفحه را رفرش کردم اطلاعات دوباره ثبت نشود در دیتابیس. با تشکر فراوان

پاسخ دادن
    سعید مقدم زاده
    تیر ۱۳, ۱۳۹۳ @ ۱۱:۵۹ ق.ظ

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

    پاسخ دادن

پاسخ دهید

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


*