استخدام PHP مع قاعدة بيانات Azure ل MySQL - خادم مرن

ينطبق على: قاعدة بيانات Azure لـMySQL - خادم مرن

يوضح هذا التشغيل السريع كيفية الاتصال بقاعدة بيانات Azure لخادم MySQL المرن باستخدام تطبيق PHP . توضح طريقة استخدام عبارات SQL الاستعلام عن البيانات وإدراجها وتحديثها وحذفها في قاعدة البيانات. تفترض هذه المقالة أنك على دراية بالتطوير باستخدام PHP وأنك جديد في العمل مع قاعدة بيانات Azure لخادم MySQL المرن.

المتطلبات الأساسية

يستخدم هذا البدء السريع الموارد التي تم إنشاؤها في أي من هذه الأدلة كنقطة بداية:

إعداد محطة عمل العميل

  1. إذا أنشأت خادمك المرن باستخدام وصول خاص (VNet Integration)، فستحتاج إلى الاتصال بخادمك من مورد ضمن شبكة VNet نفسها كخادمك. يمكنك إنشاء جهاز ظاهري وإضافته إلى VNet التي تم إنشاؤها باستخدام الخادم المرن. راجع إنشاء شبكة ظاهرية مرنة لخادم Azure Database for MySQL وإدارتها باستخدام Azure CLI.

  2. إذا أنشأت خادمك المرن باستخدام الوصول العام (عناوين IP المسموح بها)، يمكنك إضافة عنوان IP المحلي الخاص بك إلى قائمة قواعد جدار الحماية على الخادم الخاص بك. راجع إنشاء قواعد جدار حماية الخادم المرن ل Azure Database for MySQL وإدارتها باستخدام Azure CLI.

تثبيت PHP

قم بتثبيت PHP على الخادم الخاص بك، أو قم بإنشاء تطبيق Azure على الويب يشتمل على PHP. ارجع إلى إنشاء قواعد جدار الحماية وإدارتها لمعرفة كيفية إنشاء قواعد جدار الحماية.

  1. قم بتنزيل إصدار PHP 7.1.4.
  2. قم بتثبيت PHP وارجع إلى دليل PHP لمزيدٍ من التكوين.

الحصول على معلومات الاتصال

احصل على معلومات الاتصال المطلوبة للاتصال بمثيل الخادم المرن لقاعدة بيانات Azure ل MySQL. أنت بحاجة إلى اسم الخادم المؤهل بالكامل وبيانات اعتماد تسجيل الدخول.

  1. قم بتسجيل الدخول إلى بوابة Azure.
  2. من القائمة اليسرى في مدخل Azure، انقر فوق كافة الموارد،ثم ابحث عن الخادم الذي أنشأته (مثل mydemoserver).
  3. حدد اسم الخادم.
  4. من لوحة نظرة عامة على الخادم، دوّن ملاحظة عن اسم الخادم واسم تسجيل دخول مسؤول الخادم. إذا نسيت كلمة المرور، يمكنك أيضًا إعادة تعيين كلمة المرور من هذه اللوحة.

الاتصال بالخادم المرن باستخدام TLS/SSL في PHP

لإنشاء اتصال مشفر إلى الخادم المرن عبر TLS/SSL من التطبيق الخاص بك، راجع نماذج التعليمات البرمجية التالية. يمكنك تنزيل الشهادة اللازمة للاتصال عبر TLS / SSL من https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem

$conn = mysqli_init();
mysqli_ssl_set($conn,NULL,NULL, "/var/www/html/DigiCertGlobalRootCA.crt.pem", NULL, NULL);
mysqli_real_connect($conn, 'mydemoserver.mysql.database.azure.com', 'myadmin', 'yourpassword', 'quickstartdb', 3306, MYSQLI_CLIENT_SSL);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

توصيل جدول وإنشائه

استخدم التعليمات البرمجية التالية لتوصيل وإنشاء جدول باستخدام عبارة SQL إنشاء جدول.

تستخدم التعليمات البرمجية فئة امتداد MySQL المُحسن (mysqli) المدرجة في PHP. تقوم التعليمات البرمجية باستدعاء الأسلوبين mysqli_initmysqli_real_connect للاتصال بـ MySQL. ثم تستدعي الأسلوب mysqli_query لتشغيل الاستعلام. ثم تستدعي الأسلوب mysqli_close لإغلاق الاتصال.

استبدل معلمات المضيف واسم المستخدم وكلمة المرور وdb_name بالقيم الخاصة بك.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

// Run the create table query
if (mysqli_query($conn, '
CREATE TABLE Products (
`Id` INT NOT NULL AUTO_INCREMENT ,
`ProductName` VARCHAR(200) NOT NULL ,
`Color` VARCHAR(50) NOT NULL ,
`Price` DOUBLE NOT NULL ,
PRIMARY KEY (`Id`)
);
')) {
printf("Table created\n");
}

//Close the connection
mysqli_close($conn);
?>

إدراج بيانات

استخدم التعليمات البرمجية التالية للاتصال وإدراج البيانات باستخدام عبارة INSERT SQL.

تستخدم التعليمات البرمجية فئة امتداد MySQL المُحسن (mysqli) المدرجة في PHP. تستخدم التعليمات البرمجية الأسلوب mysqli_prepare لإنشاء عبارة إدراج معدة، ثم تربط المعلمات لكل قيمة عمود مدرج باستخدام الأسلوب mysqli_stmt_bind_param. تقوم التعليمات البرمجية بتشغيل العبارة باستخدام أسلوب mysqli_stmt_execute وبعد ذلك إغلاق العبارة باستخدام أسلوب mysqli_stmt_close.

استبدل معلمات المضيف واسم المستخدم وكلمة المرور وdb_name بالقيم الخاصة بك.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Create an Insert prepared statement and run it
$product_name = 'BrandNewProduct';
$product_color = 'Blue';
$product_price = 15.5;
if ($stmt = mysqli_prepare($conn, "INSERT INTO Products (ProductName, Color, Price) VALUES (?, ?, ?)")) {
mysqli_stmt_bind_param($stmt, 'ssd', $product_name, $product_color, $product_price);
mysqli_stmt_execute($stmt);
printf("Insert: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));
mysqli_stmt_close($stmt);
}

// Close the connection
mysqli_close($conn);
?>

اقرأ البيانات

استخدم التعليمات البرمجية التالية للاتصال وقراءة البيانات باستخدام عبارة الـ SQL: SELECT. تستخدم التعليمات البرمجية فئة امتداد MySQL المُحسن (mysqli) المدرجة في PHP. تستخدم التعليمات البرمجية أسلوب mysqli_query لتنفيذ استعلام sql والأسلوب mysqli_fetch_assoc لإحضار الصفوف الناتجة.

استبدل معلمات المضيف واسم المستخدم وكلمة المرور وdb_name بالقيم الخاصة بك.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Run the Select query
printf("Reading data from table: \n");
$res = mysqli_query($conn, 'SELECT * FROM Products');
while ($row = mysqli_fetch_assoc($res)) {
var_dump($row);
}

//Close the connection
mysqli_close($conn);
?>

تحديث البيانات

استخدم التعليمات البرمجية التالية للاتصال وتحديث البيانات باستخدام عبارة UPDATE SQL.

تستخدم التعليمات البرمجية فئة امتداد MySQL المُحسن (mysqli) المدرجة في PHP. تستخدم التعليمات البرمجية الأسلوب mysqli_prepare لإنشاء عبارة تحديث معدة، ثم تربط المعلمات لكل قيمة عمود محدث باستخدام الأسلوب mysqli_stmt_bind_param. تقوم التعليمات البرمجية بتشغيل العبارة باستخدام أسلوب mysqli_stmt_execute وبعد ذلك إغلاق العبارة باستخدام أسلوب mysqli_stmt_close.

استبدل معلمات المضيف واسم المستخدم وكلمة المرور وdb_name بالقيم الخاصة بك.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Run the Update statement
$product_name = 'BrandNewProduct';
$new_product_price = 15.1;
if ($stmt = mysqli_prepare($conn, "UPDATE Products SET Price = ? WHERE ProductName = ?")) {
mysqli_stmt_bind_param($stmt, 'ds', $new_product_price, $product_name);
mysqli_stmt_execute($stmt);
printf("Update: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));

//Close the connection
mysqli_stmt_close($stmt);
}

mysqli_close($conn);
?>

حذف البيانات

استخدم التعليمات البرمجية التالية للاتصال وقراءة البيانات باستخدام عبارة الـ SQL: DELETE.

تستخدم التعليمات البرمجية فئة امتداد MySQL المُحسن (mysqli) المدرجة في PHP. تستخدم التعليمات البرمجية الأسلوب mysqli_prepare لإنشاء عبارة حذف معدة، ثم يربط المعلمات الخاصة بعبارة الموقع في العبارة باستخدام الأسلوب mysqli_stmt_bind_param. تقوم التعليمات البرمجية بتشغيل العبارة باستخدام أسلوب mysqli_stmt_execute وبعد ذلك إغلاق العبارة باستخدام أسلوب mysqli_stmt_close.

استبدل معلمات المضيف واسم المستخدم وكلمة المرور وdb_name بالقيم الخاصة بك.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Run the Delete statement
$product_name = 'BrandNewProduct';
if ($stmt = mysqli_prepare($conn, "DELETE FROM Products WHERE ProductName = ?")) {
mysqli_stmt_bind_param($stmt, 's', $product_name);
mysqli_stmt_execute($stmt);
printf("Delete: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));
mysqli_stmt_close($stmt);
}

//Close the connection
mysqli_close($conn);
?>

الخطوات التالية