PHP 5 و في وقت لاحق يمكن أن تعمل مع قاعدة بيانات MySQL باستخدام:
- تمديد MySQLi (the "i" stands for improved)
- شركة تنمية نفط عمان (PHP Data Objects)
استخدام الإصدارات السابقة من PHP التمديد الخلية. ومع ذلك، تم إهمال هذا التمديد في عام 2012.
وأود أن استخدام MySQLi أو شركة تنمية نفط عمان؟
إذا كنت في حاجة الى الجواب القصير، فإنه سيكون "Whatever you like" .
كلا MySQLi وشركة تنمية نفط عمان لديها مزايا:
وستعمل شركة تنمية نفط عمان في 12 نظم قواعد البيانات المختلفة، حيث وMySQLi ستعمل فقط مع قواعد بيانات MySQL.
لذلك، إذا كان لديك للتبديل مشروع لاستخدام قاعدة بيانات أخرى، PDO يجعل عملية سهلة. لديك فقط لتغيير سلسلة الاتصال وعدد قليل من الاستفسارات. مع MySQLi، وسوف تحتاج إلى إعادة كتابة رمز بأكمله - وشملت استفسار.
كلاهما وجوه المنحى، ولكنها أيضا توفر MySQLi على API الإجرائي.
كلا دعم تحضير بيانات. تحضير بيانات تحمي من حقن SQL، ومهمة جدا لأمن تطبيقات الويب.
الخلية أمثلة في كل MySQLi وشركة تنمية نفط عمان في بناء الجملة
وفي هذا الصدد، وفي الفصول التالية ونحن لشرح ثلاث طرق للعمل مع PHP و MySQL:
- MySQLi (object-oriented)
- MySQLi (procedural)
- شركة تنمية نفط عمان
تركيب MySQLi
لينكس وويندوز: يتم تثبيت تمديد MySQLi تلقائيا في معظم الحالات، عند تثبيت حزمة PHP5 ماي.
للحصول على تفاصيل التثبيت، انتقل إلى: http://php.net/manual/en/mysqli.installation.php
تركيب شركة تنمية نفط عمان
للحصول على تفاصيل التثبيت، انتقل إلى: http://php.net/manual/en/pdo.installation.php
فتح اتصال إلى الخلية
قبل أن نتمكن من الوصول إلى البيانات في قاعدة بيانات MySQL، ونحن بحاجة إلى أن تكون قادرة على الاتصال بالخادم:
مثال (MySQLi Object-Oriented)
<?php
$servername = "localhost";
$username = "username";
$password =
"password";
// Create connection
$conn =
new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
ملاحظة على سبيل المثال وجوه المنحى أعلاه: كسرت $ connect_error حتى PHP 5.2.9 و 5.3.0. إذا كنت بحاجة إلى ضمان التوافق مع الإصدارات PHP قبل 5.2.9 و5.3.0، استخدام التعليمات البرمجية التالية بدلا من ذلك:
// تحقق من اتصال
إذا ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() )؛
}
مثال (MySQLi Procedural)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername,
$username, $password);
// Check connection
if (!$conn) {
die("Connection
failed: " . mysqli_connect_error());
}
echo "Connected
successfully";
?>
مثال (PDO)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB",
$username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
echo "Connected
successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
لاحظ أن في المثال أعلاه PDO نحن حددت أيضا قاعدة بيانات (myDB) . PDO تتطلب قاعدة بيانات صحيحة للاتصال. إذا لم يتم تحديد قاعدة البيانات، يتم طرح استثناء.
نصيحة: هناك فائدة كبيرة من PDO هو أن لديها فئة استثناء لمعالجة أي مشاكل التي قد تحدث في الاستعلامات قاعدة البيانات الخاصة بنا. إذا تم طرح استثناء داخل كتلة المحاولة {}، يتوقف النصي تنفيذ ويتدفق مباشرة إلى أول catch() {} كتلة.
إغلاق اتصال
سيتم إغلاق الاتصال تلقائيا عندما ينتهي البرنامج النصي. لإغلاق الاتصال من قبل، استخدم ما يلي:
مثال (MySQLi Object-Oriented)
$conn->close();
مثال (MySQLi Procedural)
mysqli_close($conn);
مثال (PDO)
$conn = null;