انجمن عمومی گسترش فناوری آگو

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

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

خب بریم سراغ تابع :
کد php:
<?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 با چه کاراکتری تموم میشن که در اینجا کاراکتر سمی کالن ( ; ) میباشد
لینک مرجع