Menggunakan PHP dengan Azure Database for MySQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for MySQL - Server Fleksibel

Mulai cepat ini menunjukkan cara menyambungkan ke server fleksibel Azure Database for MySQL menggunakan aplikasi PHP . Ini menunjukkan cara menggunakan pernyataan SQL untuk mengkueri, menyisipkan, memperbarui, dan menghapus data dalam database. Artikel ini mengasumsikan bahwa Anda terbiasa dengan pengembangan menggunakan PHP dan Anda baru bekerja dengan server fleksibel Azure Database for MySQL.

Prasyarat

Mulai cepat ini menggunakan sumber daya yang dibuat di salah satu panduan ini sebagai titik awal:

Mempersiapkan stasiun kerja klien Anda

  1. Jika Anda membuat server fleksibel dengan Akses privat (Integrasi VNet), Anda harus tersambung ke server Anda dari sumber daya dalam VNet yang sama dengan server Anda. Anda dapat membuat komputer virtual dan menambahkannya ke VNet yang dibuat dengan server fleksibel Anda. Lihat Membuat dan mengelola jaringan virtual server fleksibel Azure Database for MySQL menggunakan Azure CLI.

  2. Jika Anda membuat server fleksibel dengan Akses publik (alamat IP yang diizinkan), Anda dapat menambahkan alamat IP lokal Anda ke daftar aturan firewall di server Anda. Lihat Membuat dan mengelola aturan firewall server fleksibel Azure Database for MySQL menggunakan Azure CLI.

Menginstal PHP

Pasang PHP di server Anda sendiri, atau buat aplikasi web Azure yang menyertakan PHP. Lihat membuat dan mengelola aturan firewall untuk mempelajari cara membuat aturan firewall.

  1. Unduh PHP versi 7.1.4.
  2. Pasang PHP dan lihat manual PHP untuk konfigurasi lebih lanjut.

Mendapatkan informasi koneksi

Dapatkan informasi koneksi yang diperlukan untuk menyambungkan ke instans server fleksibel Azure Database for MySQL. Anda memerlukan nama server yang sepenuhnya memenuhi syarat dan info masuk.

  1. Masuk ke portal Azure.
  2. Dari menu sebelah kiri di portal Microsoft Azure, pilih Semua sumber daya, lalu cari server yang telah Anda buat (seperti mydemoserver).
  3. Pilih nama server.
  4. Dari panel server Gambaran Umum, buat catatan Nama server dan Nama untuk masuk admin server. Jika lupa kata sandi, Anda juga dapat mengatur ulang kata sandi dari panel ini.

Menyambungkan ke server fleksibel menggunakan TLS/SSL di PHP

Untuk membuat koneksi terenkripsi ke server fleksibel Anda melalui TLS/SSL dari aplikasi Anda, lihat contoh kode berikut. Anda dapat mengunduh sertifikat yang diperlukan untuk berkomunikasi melalui TLS/SSL dari 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());
}

Menyambungkan dan membuat tabel

Gunakan kode berikut untuk menyambungkan dan membuat tabel menggunakan pernyataan SQL CREATE TABLE.

Kode ini menggunakan kelas ekstensi Peningkatan MySQL (mysqli) yang disertakan dalam PHP. Kode memanggil metode mysqli_init dan mysqli_real_connect untuk tersambung ke MySQL. Kemudian, kode memanggil metode mysqli_query untuk menjalankan kueri. Kemudian, kode memanggil metode mysqli_close untuk menutup koneksi.

Ganti parameter host, nama pengguna, kata sandi, dan db_name dengan nilai Anda sendiri.

<?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);
?>

Menyisipkan data

Gunakan kode berikut untuk menyambungkan dan menyisipkan data menggunakan pernyataan SQL INSERT.

Kode ini menggunakan kelas ekstensi Peningkatan MySQL (mysqli) yang disertakan dalam PHP. Kode ini menggunakan metode mysqli_prepare untuk membuat pernyataan penyisipan yang disiapkan, lalu mengikat parameter untuk setiap nilai kolom yang disisipkan menggunakan metode mysqli_stmt_bind_param. Kode menjalankan pernyataan menggunakan metode mysqli_stmt_execute, lalu menutup pernyataan menggunakan metode mysqli_stmt_close.

Ganti parameter host, nama pengguna, kata sandi, dan db_name dengan nilai Anda sendiri.

<?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);
?>

Membaca data

Gunakan kode berikut untuk menyambungkan dan membaca data menggunakan pernyataan SQL SELECT. Kode ini menggunakan kelas ekstensi Peningkatan MySQL (mysqli) yang disertakan dalam PHP. Kode yang menggunakan metode mysqli_query melakukan kueri sql dan metode mysqli_fetch_assoc untuk mengambil baris yang dihasilkan.

Ganti parameter host, nama pengguna, kata sandi, dan db_name dengan nilai Anda sendiri.

<?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);
?>

Memperbarui data

Gunakan kode berikut untuk menyambungkan dan memperbarui data menggunakan pernyataan SQL UPDATE.

Kode ini menggunakan kelas ekstensi Peningkatan MySQL (mysqli) yang disertakan dalam PHP. Kode ini menggunakan metode mysqli_prepare membuat pernyataan pembaruan yang disiapkan, lalu mengikat parameter untuk setiap nilai kolom yang diperbarui menggunakan metode mysqli_stmt_bind_param. Kode menjalankan pernyataan menggunakan metode mysqli_stmt_execute, lalu menutup pernyataan menggunakan metode mysqli_stmt_close.

Ganti parameter host, nama pengguna, kata sandi, dan db_name dengan nilai Anda sendiri.

<?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);
?>

Menghapus data

Gunakan kode berikut untuk menghubungkan dan membaca data menggunakan pernyataan SQL DELETE.

Kode ini menggunakan kelas ekstensi Peningkatan MySQL (mysqli) yang disertakan dalam PHP. Kode ini menggunakan metode mysqli_prepare untuk membuat pernyataan penghapusan yang disiapkan, lalu mengikat parameter tempat klausul berada dalam pernyataan menggunakan metode mysqli_stmt_bind_param. Kode menjalankan pernyataan menggunakan metode mysqli_stmt_execute, lalu menutup pernyataan menggunakan metode mysqli_stmt_close.

Ganti parameter host, nama pengguna, kata sandi, dan db_name dengan nilai Anda sendiri.

<?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);
?>

Langkah berikutnya