MySQL için Azure Veritabanı - Esnek Sunucu ile PHP kullanma
ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Esnek Sunucu
Bu hızlı başlangıçta PHP uygulaması kullanarak bir MySQL için Azure Veritabanı - Esnek Sunucuya nasıl bağlandığınız 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 Sunucu 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:
- Azure portal kullanarak MySQL için Azure Veritabanı - Esnek Sunucu oluşturma
- Azure CLI kullanarak MySQL için Azure Veritabanı - Esnek Sunucu 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. Bkz. Azure CLI kullanarak MySQL için Azure Veritabanı - Esnek Sunucu sanal ağını oluşturma ve yönetme.
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ını oluşturma ve yönetme bö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ını oluşturma ve yönetme makalesine 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'ya 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 sol taraftaki menüden Tüm kaynaklar'ı seçin ve oluşturduğunuz sunucuyu (örneğin, mydemoserver) 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);
?>
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 Sunucuda Aktarım Katmanı Güvenliği (TLS 1.2) kullanılarak şifrelenmiş bağlantı.
- MySQL için Azure Veritabanı - Esnek Sunucuda Ağ İletişimi 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ğı oluşturun ve yönetin.