شرح دوال Mysqli

السلام عليكم ورحمه اله وبركاتة بعد اقرار موقع php بحذف دوال mysql في الاصدار 5.5 فتوجب علينا استخدام دوال Mysqli أو PDO اليوم راح نشرح Mysqli
تعريف بـMySQLi :
هي اختصار لكلمة MySQL Improved وهي تعني المكتبة المتطورة من MySQL وهي تعتمد على الـObject Oriented Programming ما يجعل من برمجتك تطور هائل في عمليات ادارة قواعد البيانات بالاضافة الي خصائص جديده متطوره حقاً عن MySQL
ملاحظة :
في القواعد بينات mysqli توجد طريقتين لاتصال او الاستعلام من القاعده وهي الطريق العادية او بطريقه الكائن object احنه هسه راح نشرح طريقه الكائن object لانها افضل واسرع عمليا
الاتصال بقواعد البيانات :
كنا في السابق نعمل الاتصال بالقاعده هكذا
رمز PHP:
<?php
$con = mysql_connect("localhost","root","1234") or die (mysql_error());
$chose_db = mysql_select_db("database_name") or die (mysql_error());
فقط كنا نتصل بالسيرفر عن طريق mysql_connect وهي تحتوي على ثلاث بارمترات ومن ثم نختار القاعده عن طريق mysql_select_db وهي تاخذ بارمتر واحد الي هوة اسم القاعده
الان في mysqli :
فقد تم الاستغناء عن كل هذة واختصارها بسطر واحد يحتوي على اربع بارمترات ويتم تشغيلها عن طريق الكائن
رمز PHP:
<?php
$db = new mysqli("localhost", "root", "1234", "database_name");
if($db->connect_error)
{
die('Connect Error' : $db->connect_error);
سوف نشرح الكود اولا: قمنا بعمل متغير لكائن الي هوة db ومن ثم شغلنا الكائن new وطلبنا mysqli واعطيناه اربع بارمترات البارمتر الاول : اسم السيرفر الهوست الافتراضي هوة localhost البارمتر الثاني : اسم مستخدم القاعده البارمتر الثالث : باسورد اسم مستخدم قاعده البيناتات البارمتر الرابع : اسم قاعده البينات
ملاحظة :
كنا في السابق نستخدم
رمز PHP:
mysql_CODE
CODE : نقصد هنا هوة امر مثال query او connect أو num_rows فيصير الكود هكذا
رمز PHP:
mysql_query(); mysql_connect(); mysql_num_rows();
الان هنا في اصدار Mysqli تم تغير طريقه العمل قامو بتغير الامر
رمز PHP:
mysql_
الي
رمز PHP:
$db->
هنا حيث المتغير db هوة المتغير الي شغلنا به الامر الاتصال بالقاعده ومن ثم بعدها
رمز PHP:->
فهنا اصبح كائنه كلاس اظنكم جميعا تعرفون الكلاس فلو انشئنا كلاس
رمز PHP:
<?php class datab {
public function query()
{
echo "هنا الامر";
}
}
?>
فلو اردنا تشغيل الكلاس نقوم بانشاء متغير ثم نضع يساوي ومن بعدا كلمة new ومن ثمة اسم الكلاس
رمز PHP:
$class = new datab;
ومن ثمن لو اردنا تشغيل فانكشن query نضع اسم المتغير الي شغلنا به الكلاس ومن ثم السهم ومن بعدها اسم الكلاس
رمز PHP:
$class->query();
اظن هسه فكرة الكائن وتعويضه بدل mysql افتهمنا المعلومة
الاستعلام عن القاعدة :
1- الادخال
رمز PHP:
<?php
$insert = $db->query("INSERT INTO `tbl_name` ('filed1','filed2') VALUES ('value-filed1','value-filed2')");
2- الاختيار من القاعدة
رمز PHP:
<?php
$result = $db->query("select * from tbl_name");
?>
عمل fetch_array
رمز PHP:
<?php
$result = $db->query("select * from tbl_name");
// fetch_array First
$row = $result->fetch_array(MYSQLI_NUM);
echo $row['0'];
echo $row['1'];
// fetch_array secnd
$row = $result->fetch_array(MYSQLI_ASSOC);
echo $row['username'];
echo $row['password'];
// fetch_array Third
$row = $result->fetch_array(MYSQLI_BOTH);
echo $row['0'];
echo $row['username']; ?>
هنا عندما نستخرج البينات من القاعده على شكل مصفوفة جميعها تاخذ الامر fetch_array عكس mysql التي لها انواع اخرى لاستخراج هنا صحيح لها امر واحد هوة fetch_array ولكنها سوف تاخذ ثلاثة انواع لاستخراج على شكل مصفوف النوع الاول هوة : MYSQL_NUM هوة يتم استخراج البينات على شكل مصفوفة ولكن عند طريقه العرض نعرض رقم الحقل او الترتيب 0,1,2,3,....الخ
رمز PHP:echo $row['0'];
echo $row['1'];
النوع الثاني : MYSQL_ASSOC هم يتم استخراج البينات على شكل مصفوفة ولكن طريقه عرضها على كتابة اسم احقل Filed1,Filed2,....الخ
رمز PHP:echo $row['username'];
echo $row['password'];
النوع الثالث : MYSQL_BOTH هنا يتم الاستخراج على شكل مصفوفة ولكن طريقه العرض تكون عن طريق كتابه رقم الحقل واسم الحقل
رمز PHP:echo $row['0'];
echo $row['username'];
3- الحذف من القاعدة
رمز PHP:
$db->query("DELETE FROM tbl_name WHERE filed='value-filed'");
4- التعديل او تحديث البينات في القاعده
رمز PHP:
<?php
$db->query("UPDATE tbl_name SET Filed='value-filed' WHERE 'filed1'='value-filed1'");
?>
حساب عد الحقول او الجداول :
نحسب عد الحقول او الجداول عن طريق الدالة num_rows
رمز PHP:
<?php
$result = $db->query("select * from tbl_name");
$num = $result->num_rows;
?>
ملاحظة هنا لم نقم بوضع متغير تشغيل الكائن ومن ثم num_rows بل قمنا بوضع متغير الاستعلام من القاعده الي هوة result حيت اصبحت النتيجه
رمز PHP:
متغير الاستعلام ->num_rows;
استخدم insert_id :
هذة الدالة تقوم باستخراج لنا قمية حقل التلقائي الي راح ينزرع بالقاعده ويستخدم عاده مع امر الادخال لقاعده طريقه الاستخدام
رمز PHP:
$db->insert_id;
الشرح
رمز PHP:
متغير الكائن->insert_id;
اغلاق الاتصال close :
يتم اغلاق الاتصال عن طريق
رمز PHP:
متغير الكائن->colse();
التطبيق هكذا
رمز PHP:
$db->close();
الاخطاء Error :
عندما لاتم تنفيذ العمل او الامر فانا نحتاج لاظهر الخطأ لكي نعرف ماوع الخطأ في الامر ولاظهار الخطأ نكتب
رمز PHP:
متغير الكائن->error();
التطبيق
رمز PHP:
$db->error();
<?php
$con = mysql_connect("localhost","root","1234") or die (mysql_error());
$chose_db = mysql_select_db("database_name") or die (mysql_error());
<?php
$db = new mysqli("localhost", "root", "1234", "database_name");
if($db->connect_error)
{
die('Connect Error' : $db->connect_error);
mysql_CODE
mysql_query(); mysql_connect(); mysql_num_rows();
mysql_
$db->
->
<?php class datab {
public function query()
{
echo "هنا الامر";
}
}
?>
$class = new datab;
$class->query();
<?php
$insert = $db->query("INSERT INTO `tbl_name` ('filed1','filed2') VALUES ('value-filed1','value-filed2')");
<?php
$result = $db->query("select * from tbl_name");
?>
<?php
$result = $db->query("select * from tbl_name");
// fetch_array First
$row = $result->fetch_array(MYSQLI_NUM);
echo $row['0'];
echo $row['1'];
// fetch_array secnd
$row = $result->fetch_array(MYSQLI_ASSOC);
echo $row['username'];
echo $row['password'];
// fetch_array Third
$row = $result->fetch_array(MYSQLI_BOTH);
echo $row['0'];
echo $row['username']; ?>
echo $row['0'];
echo $row['1'];
echo $row['username'];
echo $row['password'];
echo $row['0'];
echo $row['username'];
$db->query("DELETE FROM tbl_name WHERE filed='value-filed'");
<?php
$db->query("UPDATE tbl_name SET Filed='value-filed' WHERE 'filed1'='value-filed1'");
?>
<?php
$result = $db->query("select * from tbl_name");
$num = $result->num_rows;
?>
متغير الاستعلام ->num_rows;
$db->insert_id;
متغير الكائن->insert_id;
متغير الكائن->colse();
$db->close();
متغير الكائن->error();
رمز PHP:
$db->error();
تعليقات
إرسال تعليق