Bagikan melalui


Menggunakan PHP dengan Azure Database for MySQL - Server Fleksibel

Panduan memulai cepat ini menunjukkan cara menghubungkan ke Azure Database for MySQL Flexible Server 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 Azure Database for MySQL Flexible Server.

Prasyarat

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

Menyiapkan stasiun kerja klien Anda

  1. Jika Anda membuat server fleksibel dengan akses Privat (Integrasi jaringan virtual), Anda perlu terhubung ke server Anda dari sumber daya dalam jaringan virtual yang sama dengan server Anda. Anda dapat membuat komputer virtual dan menambahkannya ke jaringan virtual yang dibuat dengan server fleksibel Anda. Lihat Membuat dan mengelola jaringan virtual untuk Azure Database for MySQL - Server Fleksibel 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 Mengelola aturan firewall untuk Azure Database for MySQL - Server Fleksibel menggunakan Azure CLI.

Menginstal PHP

Pasang PHP di server Anda sendiri, atau buat aplikasi web Azure yang menyertakan PHP. Untuk informasi selengkapnya, lihat membuat dan mengelola 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 (dalam contoh berikut, ganti <server> dengan nilai yang valid).

  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 sampel kode berikut. Anda dapat mengunduh sertifikat yang diperlukan untuk berkomunikasi melalui TLS/SSL dari https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem.

Ganti parameter $host, $username, $password, dan $db_name dengan nilai Anda sendiri.

<?php
$conn = mysqli_init();
mysqli_ssl_set(
    $conn,
    null,
    null,
    "/var/www/html/DigiCertGlobalRootCA.crt.pem",
    null,
    null
);
mysqli_real_connect(
    $conn,
    "<server>.mysql.database.azure.com",
    "<username>",
    "<password>",
    "<database>",
    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 dengan menggunakan CREATE TABLE pernyataan SQL.

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.

Anda juga dapat tersambung ke Azure Database for MySQL menggunakan antarmuka berorientasi objek yang disediakan oleh ekstensi mysqli .

Ganti parameter $host, $username, $password, dan $db_name dengan nilai Anda sendiri.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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 dengan menggunakan INSERT pernyataan SQL.

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.

Anda juga dapat tersambung ke Azure Database for MySQL menggunakan antarmuka berorientasi objek yang disediakan oleh ekstensi mysqli .

Ganti parameter $host, $username, $password, dan $db_name dengan nilai Anda sendiri.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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 dengan menggunakan SELECT pernyataan SQL. 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.

Anda juga dapat tersambung ke Azure Database for MySQL menggunakan antarmuka berorientasi objek yang disediakan oleh ekstensi mysqli .

Ganti parameter $host, $username, $password, dan $db_name dengan nilai Anda sendiri.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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 dengan menggunakan UPDATE pernyataan SQL.

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.

Anda juga dapat tersambung ke Azure Database for MySQL menggunakan antarmuka berorientasi objek yang disediakan oleh ekstensi mysqli .

Ganti parameter $host, $username, $password, dan $db_name dengan nilai Anda sendiri.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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 menyambungkan dan membaca data dengan menggunakan DELETE pernyataan SQL.

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.

Anda juga dapat tersambung ke Azure Database for MySQL menggunakan antarmuka berorientasi objek yang disediakan oleh ekstensi mysqli .

Ganti parameter $host, $username, $password, dan $db_name dengan nilai Anda sendiri.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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);
?>