علي الكاسر نشر 22 سبتمبر 2022 أرسل تقرير نشر 22 سبتمبر 2022 لدي قاعدة بيانات عملت لها تصدير واحتاج الى اضافتها باوامر sql من دون الحاجه لاداة ماي تدمن مجددا كيف ذلك 2 اقتباس
1 علي عبد محسن نشر 22 سبتمبر 2022 أرسل تقرير نشر 22 سبتمبر 2022 بتاريخ 1 ساعة قال علي الكاسر: عفوا اخي لم افهم اي شي انا استخدم لغة php. ومكتبة pdo في التعامل مع قواعد البيانات، الذي احتاجه كود يقووم بنسخ قاعدة البيانات الموجودة في ملف بعد تصديرها ، ينسخها في قاعدة بيانات جديده، اعلم انه يتم فعل هذا في phpmyadmin ولكن انا اريد فعل ذلك بكود خاص، من اجل الموقع الذي اعمل عليه بما أن الحل المطلوب يجب أن يكون بلغة php يمكنك إستعمال الكود التالي لتحقيق المطلوب شرط أن تكون صيغة الملف الذي تم تصديره من قاعدة البيانات الأصلية هي sql. يمكنك تغيير ما يلزم تغييره وفقاً لمتطلباتك مع الحفاظ على نفس طريقة العمل وكما يلي <?php // مسار الملف $filename = 'name.sql'; // MySQL host $mysql_host = 'localhost'; // عنوان المضيف // MySQL username $mysql_username = 'root'; // اسم المستخدم // MySQL password $mysql_password = ''; // كلمة المرور // Database name $mysql_database = 'database_name'; // قاعدة البيانات التي تريد إستيراد الملف لها // Connect to MySQL server mysql_connect($mysql_host, $mysql_username, $mysql_password) or die('Error connecting to MySQL server: ' . mysql_error()); // الإتصال بقاعدة البيانات واختيارها mysql_select_db($mysql_database) or die('Error selecting MySQL database: ' . mysql_error()); // ننشئ متغير لخزن الجملة المراد تنفيذها $templine = ''; // Read in entire file $lines = file($filename); // sql نقرأ // Loop through each line foreach ($lines as $line) // نقوم بعمل حلقة تكرار للمرور على جميع السطور { if (substr($line, 0, 2) == '--' || $line == '') // نتجاهل التعليقات continue; $templine .= $line; // نسند السطر قيد المعالجة الى المتغير المنشأ مسبقاً if (substr(trim($line), -1, 1) == ';') // نحدد فيما إذا كانت نهاية سطر من خلال الفاصلة المنقوطة { // نقوم بتنفيذ السطر mysql_query($templine) or print('Error performing query \'<strong>' . $templine . '\': ' . mysql_error() . '<br /><br />'); // بعد غنتهاء التنفيذ نعيد قيمة المتغير الى حالته الأصلية ليكون جاهزاً للسطر القادم $templine = ''; } } echo "Tables imported successfully"; ?> اقتباس
0 عمر قره محمد نشر 22 سبتمبر 2022 أرسل تقرير نشر 22 سبتمبر 2022 قم بإنشاء قاعة بيانات بنفس الاسم : mysql> create database sakila; قم باستيراد الملفات : mysql -u [اسم المستخدم] –p [اسم قاعدة البيانات] < [مسار ملف الارشيف] على سبيل المثال : mysql --host=dbfmylast --user=root --port=3306 -p sakila < D:\sakila.sql وللتأكد من نجاح العملية : mysql> use sakila; ... mysql> show tables; حيث أن sakila هي اسم قاعدة البيانات. اقتباس
0 علي الكاسر نشر 22 سبتمبر 2022 الكاتب أرسل تقرير نشر 22 سبتمبر 2022 بتاريخ 55 دقائق مضت قال عمر قره محمد: قم بإنشاء قاعة بيانات بنفس الاسم : mysql> create database sakila; قم باستيراد الملفات : mysql -u [اسم المستخدم] –p [اسم قاعدة البيانات] < [مسار ملف الارشيف] على سبيل المثال : mysql --host=dbfmylast --user=root --port=3306 -p sakila < D:\sakila.sql وللتأكد من نجاح العملية : mysql> use sakila; ... mysql> show tables; عفوا اخي لم افهم اي شي انا استخدم لغة php. ومكتبة pdo في التعامل مع قواعد البيانات، الذي احتاجه كود يقووم بنسخ قاعدة البيانات الموجودة في ملف بعد تصديرها ، ينسخها في قاعدة بيانات جديده، اعلم انه يتم فعل هذا في phpmyadmin ولكن انا اريد فعل ذلك بكود خاص، من اجل الموقع الذي اعمل عليه اقتباس
0 علي الكاسر نشر 22 سبتمبر 2022 الكاتب أرسل تقرير نشر 22 سبتمبر 2022 بتاريخ منذ ساعة مضت قال علي محسن: بما أن الحل المطلوب يجب أن يكون بلغة php يمكنك إستعمال الكود التالي لتحقيق المطلوب شرط أن تكون صيغة الملف الذي تم تصديره من قاعدة البيانات الأصلية هي sql. يمكنك تغيير ما يلزم تغييره وفقاً لمتطلباتك مع الحفاظ على نفس طريقة العمل وكما يلي <?php // مسار الملف $filename = 'name.sql'; // MySQL host $mysql_host = 'localhost'; // عنوان المضيف // MySQL username $mysql_username = 'root'; // اسم المستخدم // MySQL password $mysql_password = ''; // كلمة المرور // Database name $mysql_database = 'database_name'; // قاعدة البيانات التي تريد إستيراد الملف لها // Connect to MySQL server mysql_connect($mysql_host, $mysql_username, $mysql_password) or die('Error connecting to MySQL server: ' . mysql_error()); // الإتصال بقاعدة البيانات واختيارها mysql_select_db($mysql_database) or die('Error selecting MySQL database: ' . mysql_error()); // ننشئ متغير لخزن الجملة المراد تنفيذها $templine = ''; // Read in entire file $lines = file($filename); // sql نقرأ // Loop through each line foreach ($lines as $line) // نقوم بعمل حلقة تكرار للمرور على جميع السطور { if (substr($line, 0, 2) == '--' || $line == '') // نتجاهل التعليقات continue; $templine .= $line; // نسند السطر قيد المعالجة الى المتغير المنشأ مسبقاً if (substr(trim($line), -1, 1) == ';') // نحدد فيما إذا كانت نهاية سطر من خلال الفاصلة المنقوطة { // نقوم بتنفيذ السطر mysql_query($templine) or print('Error performing query \'<strong>' . $templine . '\': ' . mysql_error() . '<br /><br />'); // بعد غنتهاء التنفيذ نعيد قيمة المتغير الى حالته الأصلية ليكون جاهزاً للسطر القادم $templine = ''; } } echo "Tables imported successfully"; ?> اخي لقد ظهر لي هذا الخطأ Fatal error: Uncaught Error: Call to undefined function Controllers\mysql_connect() in /storage/emulated/0/wanachat/Controllers/Database.php:21 Stack trace: #0 /storage/emulated/0/wanachat/Core/Route.php(24): Controllers\Database->index() #1 /storage/emulated/0/wanachat/wepUrl.php(20): Route::get('database', Array) #2 /storage/emulated/0/wanachat/index.php(9): require('/storage/emulat...') #3 {main} thrown in /storage/emulated/0/wanachat/Controllers/Database.php on line 21 ويشير الخطاء الى هذا السطر mysql_connect($mysql_host, $mysql_username, $mysql_password) or die('Error connecting to MySQL server: ' . mysql_error()); 1 اقتباس
0 علي عبد محسن نشر 22 سبتمبر 2022 أرسل تقرير نشر 22 سبتمبر 2022 بتاريخ 5 دقائق مضت قال علي الكاسر: اخي لقد ظهر لي هذا الخطأ Fatal error: Uncaught Error: Call to undefined function Controllers\mysql_connect() in /storage/emulated/0/wanachat/Controllers/Database.php:21 Stack trace: #0 /storage/emulated/0/wanachat/Core/Route.php(24): Controllers\Database->index() #1 /storage/emulated/0/wanachat/wepUrl.php(20): Route::get('database', Array) #2 /storage/emulated/0/wanachat/index.php(9): require('/storage/emulat...') #3 {main} thrown in /storage/emulated/0/wanachat/Controllers/Database.php on line 21 ويشير الخطاء الى هذا السطر mysql_connect($mysql_host, $mysql_username, $mysql_password) or die('Error connecting to MySQL server: ' . mysql_error()); يعتمد الأمر على ما تستخدمه من أدوات برمجية ونظام تشغيلي.يمكنك نسخ الخطأ الى google لتفهم أكثر. إذا كنت تستعمل linux قم بتثبيت الحزمة المطلوبة كما يلي. sudo apt install php-mysqli اقتباس
0 علي الكاسر نشر 22 سبتمبر 2022 الكاتب أرسل تقرير نشر 22 سبتمبر 2022 بتاريخ منذ ساعة مضت قال علي محسن: mysql_connect($mysql_host, $mysql_username, $mysql_password) or die('Error connecting to MySQL server: ' . mysql_error()); هل يمكن اعادة كتابة الكود والاتصال بقاعدة البيانات بطريقة pdo لان هذه الطريقه قديمه ولم تعد تعمل 1 اقتباس
0 علي عبد محسن نشر 22 سبتمبر 2022 أرسل تقرير نشر 22 سبتمبر 2022 بتاريخ 17 دقائق مضت قال علي الكاسر: هل يمكن اعادة كتابة الكود والاتصال بقاعدة البيانات بطريقة pdo لان هذه الطريقه قديمه ولم تعد تعمل كما ذكرنا في الأجابة الأصلية يمكنك تغيير ما يلزم تغييره وفقاً لمتطلباتك. حاول تغيير الإتصال بإستخدام pdo كما يلي وعندما تواجه مشكلة يمكنك البحث عن الخطأ في google أولاً فأن تعذر عليك الحل سنساعدك بكل سرور. try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } اقتباس
0 علي الكاسر نشر 23 سبتمبر 2022 الكاتب أرسل تقرير نشر 23 سبتمبر 2022 بتاريخ 12 ساعات قال علي محسن: كما ذكرنا في الأجابة الأصلية يمكنك تغيير ما يلزم تغييره وفقاً لمتطلباتك. حاول تغيير الإتصال بإستخدام pdo كما يلي وعندما تواجه مشكلة يمكنك البحث عن الخطأ في google أولاً فأن تعذر عليك الحل سنساعدك بكل سرور. اخي لقد فعلت مايلزم ولم يظهر لي اي خطأ هذه المره ولكن لم ينجح في نسخ الجداول في قاعدة البيانات الجديده هذا الكود كامل اتمنى ان تجربه لديك وتعرف مصدر المشكله <?php namespace Controllers; use PDO; class Database { public function index() { try { $conn = new PDO("mysql:host=localhost;dbname=database_name",'root', ''); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } // مسار الملف $filename = 'data/data_user.sql'; $mysql_database = 'database_name'; // قاعدة البيانات التي تريد إستيراد الملف لها // ننشئ متغير لخزن الجملة المراد تنفيذها $templine = ''; // Read in entire file $lines = file($filename); // sql نقرأ // Loop through each line foreach ($lines as $line) // نقوم بعمل حلقة تكرار للمرور على جميع السطور { if (substr($line, 0, 2) == '--' || $line == '') // نتجاهل التعليقات continue; $templine .= $line; // نسند السطر قيد المعالجة الى المتغير المنشأ مسبقاً if (substr(trim($line), -1, 1) == ';') // نحدد فيما إذا كانت نهاية سطر من خلال الفاصلة المنقوطة { // نقوم بتنفيذ السطر $conn->prepare($templine) or print('Error performing query \'<strong>' . $templine . '\': ' . mysql_error() . '<br /><br />'); // بعد غنتهاء التنفيذ نعيد قيمة المتغير الى حالته الأصلية ليكون جاهزاً للسطر القادم $templine = ''; } } echo "Tables imported successfully"; } } اقتباس
0 علي الكاسر نشر 23 سبتمبر 2022 الكاتب أرسل تقرير نشر 23 سبتمبر 2022 بتاريخ 12 ساعات قال علي محسن: كما ذكرنا في الأجابة الأصلية يمكنك تغيير ما يلزم تغييره وفقاً لمتطلباتك. حاول تغيير الإتصال بإستخدام pdo كما يلي وعندما تواجه مشكلة يمكنك البحث عن الخطأ في google أولاً فأن تعذر عليك الحل سنساعدك بكل سرور اخي شكرا لك لقد حللت المشكلة واشتغل الكود بنجاح الكود الصحيح كالتالي <?php namespace Controllers; use PDO; class Database { public function index() { try { $conn = new PDO("mysql:host=localhost;dbname=database_name",'root', ''); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } // مسار الملف $filename = 'data/data_user.sql'; $mysql_database = 'database_name'; // قاعدة البيانات التي تريد إستيراد الملف لها // ننشئ متغير لخزن الجملة المراد تنفيذها $templine = ''; // Read in entire file $lines = file($filename); // sql نقرأ // Loop through each line foreach ($lines as $line) // نقوم بعمل حلقة تكرار للمرور على جميع السطور { if (substr($line, 0, 2) == '--' || $line == '') // نتجاهل التعليقات continue; $templine .= $line; // نسند السطر قيد المعالجة الى المتغير المنشأ مسبقاً if (substr(trim($line), -1, 1) == ';') // نحدد فيما إذا كانت نهاية سطر من خلال الفاصلة المنقوطة { echo '<br><br>'; echo $templine; echo '<br><br>'; // نقوم بتنفيذ السطر $query = $conn->prepare($templine) or print('Error performing query \'<strong>' . $templine . '\': ' . mysql_error() . '<br /><br />'); $query->execute(); // بعد غنتهاء التنفيذ نعيد قيمة المتغير الى حالته الأصلية ليكون جاهزاً للسطر القادم $templine = ''; } } echo "Tables imported successfully"; } } 1 اقتباس
السؤال
علي الكاسر
لدي قاعدة بيانات عملت لها تصدير واحتاج الى اضافتها باوامر sql من دون الحاجه لاداة ماي تدمن مجددا كيف ذلك
9 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.