PHP'MySQL için Azure Veritabanı - Esnek Sunucu ile kullanma
ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Esnek Sunucu
Bu hızlı başlangıçta, PHP uygulaması kullanarak MySQL için Azure Veritabanı esnek sunucuya 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 esnek MySQL için Azure Veritabanı sunucuyla ç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:
- Azure portalını kullanarak MySQL için Azure Veritabanı esnek sunucu örneği oluşturma
- Azure CLI kullanarak MySQL için Azure Veritabanı esnek sunucu örneği oluşturma
İstemci iş istasyonunuzu hazırlama
Esnek sunucunuzu Özel erişim (VNet 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 sanal ağı oluşturma ve yönetme bölümüne bakın.
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 güvenlik duvarı kuralları oluşturma ve 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. Güvenlik duvarı kuralları oluşturmayı öğrenmek için güvenlik duvarı kurallarını oluşturma ve yönetme bölümüne bakın.
- PHP 7.1.4 sürümünü indirin.
- 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.
- Azure Portal’ında oturum açın.
- Azure portalında sol taraftaki menüden Tüm kaynaklar'ı seçin ve oluşturduğunuz sunucuyu (mydemoserver gibi) arayın.
- Sunucu adını seçin.
- 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ı şuradan indirebilirsiniz: 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());
}
Bağlanma ve tablo oluşturma
Bağlanmak ve CREATE TABLE SQL deyimini kullanarak 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.
host, username, password ve db_name parametre değerlerini kendi değerlerinizle değiştirin.
<?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);
?>
Veri ekleme
Bağlanmak ve INSERT SQL deyimi kullanarak 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.
host, username, password ve db_name parametre değerlerini kendi değerlerinizle değiştirin.
<?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);
?>
Verileri okuma
Bağlanmak ve SELECT SQL deyimi kullanarak 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.
host, username, password ve db_name parametre değerlerini kendi değerlerinizle değiştirin.
<?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);
?>
Verileri güncelleştirme
Bağlanmak ve bir UPDATE SQL deyimi kullanarak verileri 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.
host, username, password ve db_name parametre değerlerini kendi değerlerinizle değiştirin.
<?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);
?>
Veri silme
Bağlanmak ve DELETE SQL deyimi kullanarak 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.
host, username, password ve db_name parametre değerlerini kendi değerlerinizle değiştirin.
<?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);
?>
Sonraki adımlar
- Esnek MySQL için Azure Veritabanı sunucuda Aktarım Katmanı Güvenliği (TLS 1.2) kullanılarak şifrelenmiş bağlantı.
- Esnek MySQL için Azure Veritabanı sunucuda ağ iletişimi hakkında daha fazla bilgi edinin.
- Azure portalını kullanarak MySQL için Azure Veritabanı esnek sunucu güvenlik duvarı kuralları oluşturun ve yönetin.
- Azure portalını kullanarak MySQL için Azure Veritabanı esnek sunucu sanal ağı oluşturun ve yönetin.