إنشاء قاعدة بيانات MySQL

Ali Majrashiمنذ 8 سنوات

نستطيع في PHP إنشاء قاعدة بيانات جديدة في MySQL بإستخدام جملة CREATE DATABASE عند بناء جملة SQL. 

ملاحظة: عند بناء جملة SQL مهم جدا تحديد نوع الترميز الإفتراضي لقاعدة البيانات التي نرغب بإنشائها ؛ فهي مهمة لدعم اللغة العربية ويجب ان يكون الترميز من نوع utf-8 بتحديد الترميز الإفتراضي جميع الجداول والتي سوف تقوم بانشائها بقاعدة البيانات سوف تدعم تخزين البيانات باللغة العربية سوف نستخدم DEFAULT CHARACTER SET utf8 و DEFAULT COLLATE utf8_general_ci عند بناء جملة SQL لتحديد نوع الترميز.

ملاحظة: عند الإتصال بقاعدة البيانات ، و نرغب بإنشاء أو حذف قاعدة بيانات نحتاج إلى صلاحيات خاصة للإنشاء أو الحذف  تسمى CREATE privileges ، اذا كنت تستخدم سيرفر محلي فغالب الضن انك سوف تستخدم المستخدم root ، و الذي لديه صلاحية كاملة لجميع قواعد البيانات ، و لكن اذا كنت على استضافة تاكد من انشاء مستخدم جديد وربطه بقاعدة البيانات بالصلاحيات المطلوبة لتنفيذ مختلف المهام.

إنشاء قاعدة بيانات MySQL:

في هذه الأمثلة سنقوم بإنشاء قاعدة بيانات جديدة باسم new-DB ، و سوف نستخدم هذه القاعدة في جميع دروس السلسلة لنوضح طرق التعامل مع قواعد البيانات.

مثال على MySQLi Object-Oriented:


<?php

$servername = "localhost";
$username = "root";
$password = "root";

// إجراء الإتصال
$conn = new mysqli($servername, $username, $password);

// التحقق من الإتصال
if ($conn->connect_error) {
    die("فشل الإتصال: " . $conn->connect_error);
}

// إنشاء قاعدة البيانات
$sql = "CREATE DATABASE `new-DB` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci";
if ($conn->query($sql) === TRUE) {
    echo "تم إنشاء قاعدة البيانات بنجاح";
} else {
    echo "فشل إنشاء قاعدة البيانات: " . $conn->error;
}

// إغلاق الإتصال 
$conn->close();

لاحظ: في هذا المثال بعد اجراء الإتصال بقاعدة البيانات بنجاح وتخزينه في المتغير conn$ ، قمنا ببناء جملة SQL وتخزينها بالمتغير sql$ ، ثم استخدمنا conn->query$ لتنفيذ عملية الإستعلام بقاعدة البيانات بداخل دالة الشرط if ، و في حالة تحقق الإستعلام بنجاح سوف يتم طباعة رسالة بنجاح العملية ، و العكس في حالة الفشل سوف يتم طباعة رسالة بفشل العملية مع عرض الخطأ باستخدام conn->error$ ثم قمنا بإغلاق الإتصال بقاعدة البيانات بواسطة conn->close$ .

عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:

create-db.png

مثال على MySQLi Procedural:


<?php

$servername = "localhost";
$username = "root";
$password = "root";

// إجراء الإتصال
$conn = mysqli_connect($servername, $username, $password);

// التحقق من الإتصال
if (!$conn) {
    die("فشل الإتصال: " . mysqli_connect_error());
}

// إنشاء قاعدة البيانات
$sql = "CREATE DATABASE `new-DB` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci";
if (mysqli_query($conn, $sql)) {
    echo "تم إنشاء قاعدة البيانات بنجاح";
} else {
    echo "فشل إنشاء قاعدة البيانات: " . mysqli_error($conn);
}

// إغلاق الإتصال 
mysqli_close($conn);

لاحظ: في هذا المثال بعد اجراء الإتصال بقاعدة البيانات بنجاح وتخزينه في المتغير conn$ ، قمنا ببناء جملة SQL وتخزينها بالمتغير sql$ ، ثم استخدمنا الدالة mysql_query لتنفيذ عملية الإستعلام بقاعدة البيانات بداخل دالة الشرط if ، و في حالة تحقق الإستعلام بنجاح سوف يتم طباعة رسالة بنجاح العملية ، و العكس في حالة الفشل سوف يتم طباعة رسالة بفشل العملية مع عرض الخطأ باستخدام الدالة mysql_error ثم قمنا بإغلاق الإتصال بقاعدة البيانات بواسطة الدالة mysql_close.

ملاحظة: عند إستخدام MySQLi لإنشاء قاعدة بيانات جديدة يجب ان تقوم بإدخال أول ٣ مدخلات فقط وهم عبارة عن عنوان السيرفر ، اسم المستخدم ، الرقم السري فقط

عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:

create-db.png

مثال على PDO:


<?php

$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "3alampro-mysql";

try {
	// إجراء الإتصال
	$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
	// تعديل نوع معالج الأخطاء
	$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	// إنشاء قاعدة البيانات
	$sql = "CREATE DATABASE `new-DB` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci";
	// لتنفيذ الإستعلام لانه لن يكون هناك نتائج من عملية التنفيذ exec() نستخدم
	$conn->exec($sql);
	echo "تم إنشاء قاعدة البيانات بنجاح<br>";
}
catch(PDOException $e) {
	echo $sql . "<br>" . $e->getMessage();
}

// إغلاق الإتصال
$conn = null;

لاحظ: في هذا المثال بعد اجراء الإتصال بقاعدة البيانات بنجاح وتخزينه في المتغير conn$ ، قمنا ببناء جملة SQL وتخزينها بالمتغير sql$ ، ثم استخدمنا conn->exec$ لتنفيذ عملية الإستعلام بقاعدة البيانات وفي حالة تحقق الإستعلام بنجاح سوف يتم طباعة رسالة بنجاح العملية ، لاحظ ايضا اننا قمنا بتنفيذ الكود داخل {}try{} catch  ، بحيث انه سوف يتم تنفيذ محتوى try بالكامل ، و لكن في حالة وجود اي خطأ بالتنفيذ سوف يتم ايقاف عمل الكود وتعمل catch بالقبض على الخطا وعرضه بواسطة e->getMessage جدا مفيدة للتعامل مع الأخطاء في البرمجة الكائنية ، و تدعمها PDO بشكل كامل.

ملاحظة: على عكس MySQLi ، عند إستخدام PDO لإنشاء قاعدة بيانات جديدة يجب ان تقوم بتحديد إسم قاعدة بيانات فعالة ، وقابلة للإتصال بالإضافة الى عنوان السيرفر ، واسم المستخدم ، و الرقم السري؛ ليتم الإتصال بدون مشاكل ، وبعدها تستطيع إنشاء قاعدة بيانات جديدة ، في هذا المثال انا قمت مسبقا بانشاء قاعدة بيانات 3alampro-mysql ، و استخدامها بهذا المثال لتوضيح طريقة تنفيذ هذا النوع من العمليات.

عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:

create-db.png

التعليقات (1)

mahmoud:

ممتاز الشرح الرائع شكرا 

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !