الفرق بين MySQLi و PDO


,, نبدء باسم الله ,,

,, موضوعي اليوم يتحدث عن ,,
,, مقارنة بين MySQLi
و PDO ,,
كل حد متخصص في لغات الويب لازم يعرف لغات ..
HTML .. CSS .. PHP .. MySQL

ماهي الMySQL ببساطه .

هي عبارة عن مجموعة دوال mysql محسنة و مطورة لتصبح ذات اداء و فعالية أكبر , و الاسم Mysqli ينطبيق على هذا المعنى mysql improved .

وماهي PDO .
PDO اختصار لكلمه ..
PHP Data Objects
وهي اضافه للبي اتش بي بتسهل موضوع التعامل مع قواعد البيانات و بتتسمي بالانجليزي database abstraction layer .

الان عرفنا ايه هو MySQL or PDO .
باجي لموضوعي اليوم .
المذكور في العنوان
مقارنة بين MySQLi و PDO
ومن الافضل ولماذا .


: مقارنة بسيطة :

اولاً
دعم قواعد البيانات :
PDO : تدعم 12 نوع مختلف.
MySQLi : تدعم الMySQL فقط .

طريقة التعامل :
PDO : كلاس الPDO
MySQLi : كلاس الMySQLi أو دوال الMySQLi


السرعة :
=====================
PDO : سريعة.
MySQLi : سريعة .



ثانيًا
: مقارنة دقيقة مع امثلة :

طريقة الاتصال بقاعدة البيانات :


كود:
// PDO  
$pdo = new PDO("mysql:host=localhost;dbname=database", 'username', 'password');  
   
// mysqli, عن طريق الدوال  
$mysqli = mysqli_connect('localhost','username','password','database'); 
   
// mysqli, عن طريق الكلاس  
$mysqli = new mysqli('localhost','username','password','database');
الاستعلام و جلب النتائج :

كود:
$query = "SELECT * FROM users";  
      
// PDO  
$result = $pdo->query($query);  
   
while ($user = $result->fetch(PDO::FETCH_CLASS)) {  
   // echo $user->Here a column;  
}  
// MySQLI, عن طريق الدوال  
if ($result = mysqli_query($mysqli, $query)) {  
   while ($user = mysqli_fetch_object($result, 'User')) {  
   // echo $user->Here a column;  
   }  

}  
// MySQLi, عن طريق الكلاس  
if ($result = $mysqli->query($query)) {  
   while ($user = $result->fetch_object('User')) {  
    // echo $user->Here a column;  
   }  
}
الحماية :

كود:
// PDO, escaping  
$username = PDO::quote($_GET['username']);  
   
$pdo->query("SELECT * FROM users WHERE username = $username");  
         
// mysqli, escaping  
$username = mysqli_real_escape_string($_GET['username']);  
   
$mysqli->query("SELECT * FROM users WHERE username = '$username'");

الPDO احسن . لكن طبعًا مو معناه ان الMySQLi ضعيفة ، تقدر تستخدمها وهي سهله جدًا ، هم الاتنين قريبين جدًا من بعض ، و شكرًأ .




اضغط على السمايل للحصول على الكود: :) =( :s :D :-D ^:D ^o^ 7:( :Q :p T_T @@, :-a :W *fck* x@

TOP