عرض مشاركة واحدة
  #1  
قديم 05-28-2021, 03:50 AM
الصورة الرمزية الادارة كريم
الادارة كريم 
مشرف سابق
 
تاريخ التسجيل: May 2021
الدولة: مصر
المشاركات: 397
معدل تقييم المستوى: 20
الادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to behold


افتراضي تخزين البيانات المتعددة في MySQL

 

تستطيع في PHP إضافة ، و تخزين البيانات المتعددة وذلك عن طريق بناء أكواد SQL متعددة ، و تنفيذها دفعة واحدة بواسطة إستخدام دالة mysqli_multi_query ، هذا عند التعامل مع MySQLi ، و لكن عند التعامل مع PDO تختلف الطريقة سنوضحها بالمثال.
مثال على MySQLi Object-Oriented:
<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; // إجراء الإتصال $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من الإتصال if ($conn->connect_error) { die("فشل الإتصال: " . $conn->connect_error); } // لتخزين البيانات المتعددة بالجدول sql بناء عدة جمل $sql = "INSERT INTO users (name, email) VALUES ('Mohammed', 'Mohammed@3alampro.com');"; $sql .= "INSERT INTO users (name, email) VALUES ('Abdullah', 'Abdullah@3alampro.com');"; $sql .= "INSERT INTO users (name, email) VALUES ('Mansour', 'Mansour@3alampro.com')"; // تنفيذ الإستعلام if ($conn->multi_query($sql) === TRUE) { echo "تم إضافة السجلات بنجاح"; } else { echo "خطأ: " . $sql . "<br>" . $conn->error; } // إغلاق الإتصال $conn->close(); كما في الأمثلة السابقة قمنا بعملية الإتصال ، ثم قمنا ببناء جملة SQL ، و بعدها قمنا بتنفيذ الإستعلام بقاعدة البيانات ؛ لنحصل على الرد بنجاح او فشل العملية ، الإختلاف الوحيد اننا استخدمنا conn->multi_query$ لتنفيذ مجموعة جمل SQL كاستعلام واحد بقاعدة البيانات.
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:

مثال على MySQLi Procedural:
<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; // إجراء الإتصال $conn = mysqli_connect($servername, $username, $password, $dbname); // التحقق من الإتصال if (!$conn) { die("فشل الإتصال: " . mysqli_connect_error()); } // لتخزين البيانات المتعددة بالجدول sql بناء عدة جمل $sql = "INSERT INTO users (name, email) VALUES ('Mohammed', 'Mohammed@3alampro.com');"; $sql .= "INSERT INTO users (name, email) VALUES ('Abdullah', 'Abdullah@3alampro.com');"; $sql .= "INSERT INTO users (name, email) VALUES ('Mansour', 'Mansour@3alampro.com')"; // تنفيذ الإستعلام if (mysqli_multi_query($conn, $sql)) { echo "تم إضافة السجلات بنجاح"; } else { echo "خطأ: " . $sql . "<br>" . mysqli_error($conn); } // إغلاق الإتصال mysqli_close($conn); كما في الأمثلة السابقة قمنا بعملية الإتصال ، ثم قمنا ببناء جملة SQL ، و بعدها قمنا بتنفيذ الإستعلام بقاعدة البيانات ؛ لنحصل على الرد بنجاح او فشل العملية ، الإختلاف الوحيد اننا استخدمنا الدالة mysqli_multi_query لتنفيذ مجموعة جمل SQL كاستعلام واحد بقاعدة البيانات.
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:
مثال على PDO:
<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; try { // إجراء الإتصال $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // تعديل نوع معالج الأخطاء $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // بدء العملية $conn->beginTransaction(); // SQL بناء جمل $conn->exec("INSERT INTO users (name, email) VALUES ('Mohammed', 'Mohammed@3alampro.com')"); $conn->exec("INSERT INTO users (name, email) VALUES ('Abdullah', 'Abdullah@3alampro.com')"); $conn->exec("INSERT INTO users (name, email) VALUES ('Mansour', 'Mansour@3alampro.com')"); // تنفيذ كامل العملية $conn->commit(); echo "تم إضافة السجلات بنجاح"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } // إغلاق الإتصال $conn = null; لاحظ: في مثال PDO استخدمنا conn->beginTransaction$ بعدها قمنا بعملية بناء جمل SQL باستخدام conn->exec$ ، تستطيع بناء العدد الذي تريد من الجمل ، حيث كل جمله يتم بنائها لوحدها باستخدام الدالة ، ثم عند الإنتهاء استخدمنا conn->commit$ لتنفيذ جميع هذه الجمل جميعا كاستعلام واحد في قاعدة البيانات
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:


الموضوع الأصلي : تخزين البيانات المتعددة في MySQL || الكاتب : الادارة كريم || المصدر : منتدى مجمع التطوير

 

رد مع اقتباس