تخزين البيانات المتعددة في 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', '[email protected]');";
$sql .= "INSERT INTO users (name, email)
VALUES ('Abdullah', '[email protected]');";
$sql .= "INSERT INTO users (name, email)
VALUES ('Mansour', '[email protected]')";
// تنفيذ الإستعلام
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', '[email protected]');";
$sql .= "INSERT INTO users (name, email)
VALUES ('Abdullah', '[email protected]');";
$sql .= "INSERT INTO users (name, email)
VALUES ('Mansour', '[email protected]')";
// تنفيذ الإستعلام
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', '[email protected]')");
$conn->exec("INSERT INTO users (name, email)
VALUES ('Abdullah', '[email protected]')");
$conn->exec("INSERT INTO users (name, email)
VALUES ('Mansour', '[email protected]')");
// تنفيذ كامل العملية
$conn->commit();
echo "تم إضافة السجلات بنجاح";
}
catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
// إغلاق الإتصال
$conn = null;
لاحظ: في مثال PDO استخدمنا conn->beginTransaction$ بعدها قمنا بعملية بناء جمل SQL باستخدام conn->exec$ ، تستطيع بناء العدد الذي تريد من الجمل ، حيث كل جمله يتم بنائها لوحدها باستخدام الدالة ، ثم عند الإنتهاء استخدمنا conn->commit$ لتنفيذ جميع هذه الجمل جميعا كاستعلام واحد في قاعدة البيانات
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:
محتوى الدورة
الكلمات الدليلية
عن الدرس
0 إعجاب |
2 متابع |
0 مشاركة |
4896 مشاهدات |
منذ 8 سنوات |
التعليقات (2)
ابداع والله تسلم ايدك تبسيط المعلومه بالشكل ده فوق الممتاز .
السلام عليكم
شكرا جزيرا على المجهود المبذول وتبسيط المعلومة
كنت اريد معرفة التسجيل الى قاعدة البيانات عن طريق فورم
عرض المزيد.. جديد دوراتي
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !