Aracılığıyla paylaş


PHP'MySQL için Azure Veritabanı - Esnek Sunucu ile kullanma

Bu hızlı başlangıçta , PHP uygulaması kullanarak MySQL için Azure Veritabanı Esnek Sunucusu'na nasıl bağlandığınız gösterilmektedir. Hızlı başlangıçta, veritabanında verileri sorgulamak, eklemek, güncelleştirmek ve silmek için SQL deyimlerinin nasıl kullanılacağı da gösterilmiştir. Bu makalede PHP kullanarak geliştirme konusunda bilgi sahibi olduğunuz ve MySQL için Azure Veritabanı Esnek Sunucusu ile çalışmaya yeni olduğunuz varsayılır.

Önkoşullar

Bu hızlı başlangıçta, başlangıç noktası olarak şu kılavuzlardan birinde oluşturulan kaynaklar kullanılmaktadır:

İstemci iş istasyonunuzu hazırlama

  1. Esnek sunucunuzu Özel erişim (sanal ağ Tümleştirmesi) ile oluşturduysanız, sunucunuzla aynı sanal ağ içindeki bir kaynaktan sunucunuza bağlanmanız gerekir. Bir sanal makine oluşturabilir ve esnek sunucunuzla oluşturulan sanal ağa ekleyebilirsiniz. Azure CLI kullanarak MySQL için Azure Veritabanı - Esnek Sunucu için sanal ağlar oluşturma ve yönetme bölümüne bakın.

  2. Esnek sunucunuzu Genel erişimle (izin verilen IP adresleri) oluşturduysanız, yerel IP adresinizi sunucunuzdaki güvenlik duvarı kuralları listesine ekleyebilirsiniz. Azure CLI kullanarak MySQL için Azure Veritabanı - Esnek Sunucu için güvenlik duvarı kurallarını yönetme bölümüne bakın.

PHP yükleme

PHP’yi kendi sunucunuza yükleyin veya PHP içeren bir Azure web uygulaması oluşturun. Daha fazla bilgi için bkz. Güvenlik duvarı kurallarını oluşturma ve yönetme.

  1. PHP 7.1.4 sürümünü indirin.
  2. PHP'yi yükleyin ve diğer yapılandırmalar için PHP kılavuzuna bakın.

Bağlantı bilgilerini alma

MySQL için Azure Veritabanı Esnek Sunucu örneğine bağlanmak için gereken bağlantı bilgilerini alın. Tam sunucu adına ve oturum açma kimlik bilgilerine ihtiyacınız vardır.

  1. Azure Portal’ında oturum açın.

  2. Azure portalında sol taraftaki menüden Tüm kaynaklar'ı seçin ve oluşturduğunuz sunucuyu arayın (aşağıdaki örneklerde değerini geçerli bir değerle değiştirin <server> ).

  3. Sunucu adını seçin.

  4. Sunucunun Genel Bakış panelinden Sunucu adı ile Sunucu yöneticisi oturum açma adı’nı not alın. Parolanızı unutursanız, bu panelden parolayı da sıfırlayabilirsiniz.

PHP'de TLS/SSL kullanarak esnek sunucuya bağlanma

Uygulamanızdan TLS/SSL üzerinden esnek sunucunuza şifreli bir bağlantı kurmak için aşağıdaki kod örneklerine bakın. TLS/SSL üzerinden iletişim kurmak için gereken sertifikayı adresinden https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pemindirebilirsiniz.

$host, $username, $password ve $db_name parametrelerini kendi değerlerinizle değiştirin.

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

Bağlanma ve tablo oluşturma

SQL deyimini kullanarak CREATE TABLE bağlanmak ve tablo oluşturmak için aşağıdaki kodu kullanın.

Kod, PHP'de bulunan MySQL Improved extension (mysqli) sınıfını kullanır. Kod, MySQL'e bağlanmak için mysqli_init ve mysqli_real_connect yöntemlerini çağırır. Ardından sorgu çalıştırmak için mysqli_query yöntemini çağırır. Daha sonra bağlantıyı kapatmak için mysqli_close yöntemini çağırır.

Mysqli uzantısı tarafından sağlanan nesne odaklı arabirimi kullanarak MySQL için Azure Veritabanı'na da bağlanabilirsiniz.

$host, $username, $password ve $db_name parametrelerini kendi değerlerinizle değiştirin.

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

Veri ekleme

SQL deyimini kullanarak INSERT bağlanmak ve veri eklemek için aşağıdaki kodu kullanın.

Kod, PHP'de bulunan MySQL Improved extension (mysqli) sınıfını kullanır. Kod, mysqli_prepare yöntemini kullanarak hazır bir INSERT deyimi oluşturur, ardından mysqli_stmt_bind_param yöntemini kullanarak, eklenen her bir sütun değerine ilişkin parametreleri bağlar. Kod, mysqli_stmt_execute yöntemini kullanarak deyimi çalıştırır ve ardından mysqli_stmt_close yöntemini kullanarak deyimi kapatır.

Mysqli uzantısı tarafından sağlanan nesne odaklı arabirimi kullanarak MySQL için Azure Veritabanı'na da bağlanabilirsiniz.

$host, $username, $password ve $db_name parametrelerini kendi değerlerinizle değiştirin.

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

Verileri okuma

Bir SELECT SQL deyimini kullanarak bağlanmak ve verileri okumak için aşağıdaki kodu kullanın. Kod, PHP'de bulunan MySQL Improved extension (mysqli) sınıfını kullanır. Kod, mysqli_query yöntemini kullanarak SQL sorgusunu gerçekleştirir ve mysqli_fetch_assoc yöntemini kullanarak elde edilen satırları getirir.

Mysqli uzantısı tarafından sağlanan nesne odaklı arabirimi kullanarak MySQL için Azure Veritabanı'na da bağlanabilirsiniz.

$host, $username, $password ve $db_name parametrelerini kendi değerlerinizle değiştirin.

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

Verileri güncelleştirme

Sql deyimini kullanarak UPDATE verileri bağlamak ve güncelleştirmek için aşağıdaki kodu kullanın.

Kod, PHP'de bulunan MySQL Improved extension (mysqli) sınıfını kullanır. Kod, mysqli_prepare yöntemini kullanarak hazır bir UPDATE deyimi oluşturur, ardından mysqli_stmt_bind_param yöntemini kullanarak, güncelleştirilen her bir sütun değerine ilişkin parametreleri bağlar. Kod, mysqli_stmt_execute yöntemini kullanarak deyimi çalıştırır ve ardından mysqli_stmt_close yöntemini kullanarak deyimi kapatır.

Mysqli uzantısı tarafından sağlanan nesne odaklı arabirimi kullanarak MySQL için Azure Veritabanı'na da bağlanabilirsiniz.

$host, $username, $password ve $db_name parametrelerini kendi değerlerinizle değiştirin.

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

?>

Veri silme

Bir DELETE SQL deyimini kullanarak bağlanmak ve verileri okumak için aşağıdaki kodu kullanın.

Kod, PHP'de bulunan MySQL Improved extension (mysqli) sınıfını kullanır. Kod, mysqli_prepare yöntemini kullanarak hazır bir DELETE deyimi oluşturur, ardından mysqli_stmt_bind_param yöntemini kullanarak deyimdeki WHERE yan tümcesine ilişkin parametreleri bağlar. Kod, mysqli_stmt_execute yöntemini kullanarak deyimi çalıştırır ve ardından mysqli_stmt_close yöntemini kullanarak deyimi kapatır.

Mysqli uzantısı tarafından sağlanan nesne odaklı arabirimi kullanarak MySQL için Azure Veritabanı'na da bağlanabilirsiniz.

$host, $username, $password ve $db_name parametrelerini kendi değerlerinizle değiştirin.

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