MySQL için Azure veritabanı esnek sunucusu ile PHP kullanma
Uygulama hedefi:
MySQL için Azure veritabanı-esnek sunucu
Bu hızlı başlangıçta, bir php uygulaması kullanarak MySQL Için Azure veritabanı esnek sunucusuna nasıl bağlanacağı gösterilmektedir. Ayrıca veritabanında veri sorgulamak, eklemek, güncelleştirmek ve silmek için SQL deyimlerini nasıl kullanacağınız da gösterilmiştir. Bu makalede, PHP kullanarak geliştirmeyle ilgili bilgi sahibi olduğunuz ve MySQL için Azure veritabanı esnek sunucusu ile çalışmaya yeni başladığınız 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 kullanarak MySQL için Azure veritabanı esnek sunucusu oluşturma
- Azure CLı kullanarak MySQL için Azure veritabanı esnek sunucusu oluşturma
İstemci iş istasyonunuzu hazırlama
Esnek sunucunuzu özel erişim (VNET tümleştirmesi) ile oluşturduysanız, sunucunuza aynı VNET içindeki bir kaynaktan sunucunuza bağlanmanız gerekir. Bir sanal makine oluşturabilir ve bunu esnek sunucunuz ile oluşturulan VNet 'e ekleyebilirsiniz. Azure CLI kullanarak MySQL Için Azure veritabanı esnek sunucu sanal ağı oluşturma ve yönetmebölümüne bakın.
Esnek sunucunuzu ortak erişim (izin VERILEN IP adresleri) ile oluşturduysanız, sunucunuzdaki güvenlik duvarı kuralları lıstesıne yerel IP adresinizi ekleyebilirsiniz. Azure CLI kullanarak MySQL Için Azure veritabanı esnek sunucu güvenlik duvarı kuralları oluşturma ve yönetmebölümüne bakın.
PHP'yi 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ı oluşturma ve yönetme bölümüne bakın.
Mac OS
- 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.
Linux (Ubuntu)
- PHP 7.1.4 iş parçacığı güvenli olmayan (x64) sürümünü indirin.
- PHP'yi yükleyin ve diğer yapılandırmalar için PHP kılavuzuna bakın.
Windows
- PHP 7.1.4 iş parçacığı güvenli olmayan (x64) 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 sunucusuna bağlanmak için gereken bağlantı bilgilerini alın. Tam sunucu adı ve oturum açma kimlik bilgileri gerekir.
- Azure Portal oturum açın.
- Azure Portal sol taraftaki menüden tüm kaynaklar' ı seçin ve oluşturduğunuz sunucuyu (örneğin, demosunucum) 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ızdaki 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);
?>
Verileri 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
- MySQL Için Azure veritabanı-esnek sunucu 'Da Aktarım Katmanı Güvenliği (TLS 1,2) kullanılarak şifrelenmiş bağlantı.
- MySQL Için Azure veritabanı esnek sunucusu 'Nda ağhakkında daha fazla bilgi edinin.
- Azure Portal kullanarak MySQL Için Azure veritabanı esnek sunucu güvenlik duvarı kuralları oluşturun ve yönetin.
- Azure Portal kullanarak MySQL Için Azure veritabanı esnek sunucu sanal ağını oluşturun ve yönetin.