في مجال تطوير الويب، هناك حاجة إلى استيراد ملفات قاعدة بيانات كبيرة أثناء استخدام موفري الاستضافة المشتركة بشكل شائع ينشأ. لسوء الحظ، قد يكون الوصول إلى MySQL عبر سطر الأوامر مقيدًا، مما يستلزم حلًا قائمًا على PHP لتحليل الاستعلامات وتنفيذها.
ولمواجهة هذا التحدي، تم تطوير وظيفة قوية تعرف باسم SplitSQL() لتقسيم قاعدة البيانات بشكل موثوق. ملف قاعدة البيانات إلى استعلامات فردية دون استهلاك ذاكرة زائدة.
يستفيد SplitSQL() من أسلوب قراءة الملفات، بالتكرار عبر سطر الملف عن طريق الخط. فهو يحدد الاستعلامات عن طريق الكشف عن المحدد المحدد (؛ افتراضيًا) في نهاية السطر. بمجرد تجميع استعلام كامل، يتم تنفيذه على الفور باستخدام mysql_query().
function SplitSQL($file, $delimiter = ';')
{
set_time_limit(0);
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));
if (mysql_query($query) === false)
{
echo '<h3>ERROR: ' . $query . '</h3>' . "\n";
}
else
{
echo '<h3>SUCCESS: ' . $query . '</h3>' . "\n";
}
while (ob_get_level() > 0)
{
ob_end_flush();
}
flush();
}
if (is_string($query) === true)
{
$query = array();
}
}
return fclose($file);
}
}
return false;
}
// Test data
$file = '/path/to/db_dump.sql';
SplitSQL($file);
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3