Hızlı Başlangıç: Php kullanarak PostgreSQL için Azure Veritabanı - Tek Sunucu'da veri bağlama ve sorgulama

Bu hızlı başlangıçta, PHP uygulaması kullanılarak PostgreSQL için Azure Veritabanı’na nasıl bağlanılacağı gösterilmiştir. 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 makaledeki adımlarda, PHP kullanarak geliştirmeyle ilgili bilgi sahibi olduğunuz ve PostgreSQL için Azure Veritabanı 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:

PHP'yi yükleme

PHP'yi kendi sunucunuza yükleyin veya PHP içeren bir Azure web uygulaması oluşturun.

Windows

  • PHP 7.1.4 iş parçacığı güvenli olmayan (x64) sürümünü indirin
  • PHP'yi yükleyin ve daha fazla yapılandırma için PHP kılavuzuna bakın
  • Kod, PHP yüklemesine dahil olan pgsql sınıfını (ext/php_pgsql.dll) kullanır.
  • Genellikle C:\Program Files\PHP\v7.1\php.ini konumunda bulunan php.ini yapılandırma dosyasını düzenleyerek pgsql uzantısını etkinleştirin. Yapılandırma dosyası, extension=php_pgsql.so metnine sahip bir satır içermelidir. Gösterilmiyorsa metni ekleyip dosyayı kaydedin. Metin varsa, ancak metne noktalı virgül ön ekiyle açıklama eklenmişse noktalı virgülü kaldırarak metindeki açıklamayı silin.

Linux (Ubuntu)

  • PHP 7.1.4 iş parçacığı güvenli olmayan (x64) sürümünü indirin
  • PHP'yi yükleyin ve daha fazla yapılandırma için PHP kılavuzuna bakın
  • Kod, pgsql sınıfını (php_pgsql.so) kullanır. sudo apt-get install php-pgsql öğesini çalıştırarak yükleyin.
  • /etc/php/7.0/mods-available/pgsql.ini yapılandırma dosyasını düzenleyerek pgsql uzantısını etkinleştirin. Yapılandırma dosyası, extension=php_pgsql.so metnine sahip bir satır içermelidir. Gösterilmiyorsa metni ekleyip dosyayı kaydedin. Metin varsa, ancak metne noktalı virgül ön ekiyle açıklama eklenmişse noktalı virgülü kaldırarak metindeki açıklamayı silin.

macOS

Bağlantı bilgilerini alma

PostgreSQL için Azure Veritabanı'na bağlanmak üzere gereken bağlantı bilgilerini alın. Tam sunucu adına ve oturum açma kimlik bilgilerine ihtiyacınız vardır.

  1. Azure portal.
  2. Azure portalında sol taraftaki menüden Tüm kaynaklar'a tıklayın ve oluşturduğunuz sunucuyu (örneğin, mydemoserver) arayın.
  3. Sunucunun adına tıklayın.
  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. PostgreSQL için Azure Veritabanı sunucu adı

Bağlanma ve tablo oluşturma

CREATE TABLE SQL deyimini kullanarak bir tabloyu bağlamak ve oluşturmak ve ardından INSERT INTO SQL deyimlerini kullanarak tabloya satırlar eklemek için aşağıdaki kodu kullanın.

Kod çağrısı yöntemi pg_connect() kullanarak PostgreSQL için Azure Veritabanı. Ardından birkaç komutu çalıştırmak için birkaç kez pg_query() yöntemini ve her seferinde bir hata oluşursa ayrıntıları kontrol etmek için pg_last_error() yöntemini çağırır. Daha sonra bağlantıyı kapatmak için pg_close() yöntemini çağırır.

$host, $database, $user ve $password parametrelerini kendi değerlerinizle değiştirin.

<?php
    // Initialize connection variables.
    $host = "mydemoserver.postgres.database.azure.com";
    $database = "mypgsqldb";
    $user = "mylogin@mydemoserver";
    $password = "<server_admin_password>";

    // Initialize connection object.
    $connection = pg_connect("host=$host dbname=$database user=$user password=$password") 
        or die("Failed to create connection to database: ". pg_last_error(). "<br/>");
    print "Successfully created connection to database.<br/>";

    // Drop previous table of same name if one exists.
    $query = "DROP TABLE IF EXISTS inventory;";
    pg_query($connection, $query) 
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
    print "Finished dropping table (if existed).<br/>";

    // Create table.
    $query = "CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);";
    pg_query($connection, $query) 
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
    print "Finished creating table.<br/>";

    // Insert some data into table.
    $name = '\'banana\'';
    $quantity = 150;
    $query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
    pg_query($connection, $query) 
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");

    $name = '\'orange\'';
    $quantity = 154;
    $query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
    pg_query($connection, $query) 
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");

    $name = '\'apple\'';
    $quantity = 100;
    $query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
    pg_query($connection, $query) 
        or die("Encountered an error when executing given sql statement: ". pg_last_error()). "<br/>";

    print "Inserted 3 rows of data.<br/>";

    // Closing connection
    pg_close($connection);
?>

Verileri okuma

Bağlanmak ve SELECT SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın.

Kod çağrısı yöntemi pg_connect() kullanarak PostgreSQL için Azure Veritabanı. Ardından sonuçları bir sonuç kümesinde tutarak SELECT komutunu çalıştırmak için pg_query() yöntemini ve bir hata oluşursa ayrıntıları kontrol etmek için pg_last_error() yöntemini çağırır. Sonuç kümesini okumak için döngüde satır başına bir kez pg_fetch_row() yöntemi çağrılır ve her dizi konumunda sütun başında bir veri değeri olacak şekilde $row dizisinde satır verileri alınır. Sonuç kümesini boşaltmak için pg_free_result() yöntemi çağrılır. Daha sonra bağlantıyı kapatmak için pg_close() yöntemini çağırır.

$host, $database, $user ve $password parametrelerini kendi değerlerinizle değiştirin.

<?php
    // Initialize connection variables.
    $host = "mydemoserver.postgres.database.azure.com";
    $database = "mypgsqldb";
    $user = "mylogin@mydemoserver";
    $password = "<server_admin_password>";
    
    // Initialize connection object.
    $connection = pg_connect("host=$host dbname=$database user=$user password=$password")
                or die("Failed to create connection to database: ". pg_last_error(). "<br/>");

    print "Successfully created connection to database. <br/>";

    // Perform some SQL queries over the connection.
    $query = "SELECT * from inventory";
    $result_set = pg_query($connection, $query) 
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
    while ($row = pg_fetch_row($result_set))
    {
        print "Data row = ($row[0], $row[1], $row[2]). <br/>";
    }

    // Free result_set
    pg_free_result($result_set);

    // Closing connection
    pg_close($connection);
?>

Verileri güncelleştirme

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

Kod çağrısı yöntemi pg_connect() kullanarak PostgreSQL için Azure Veritabanı. Ardından bir komut çalıştırmak için pg_query() yöntemini ve bir hata oluşursa ayrıntıları kontrol etmek için pg_last_error() yöntemini çağırır. Daha sonra bağlantıyı kapatmak için pg_close() yöntemini çağırır.

$host, $database, $user ve $password parametrelerini kendi değerlerinizle değiştirin.

<?php
    // Initialize connection variables.
    $host = "mydemoserver.postgres.database.azure.com";
    $database = "mypgsqldb";
    $user = "mylogin@mydemoserver";
    $password = "<server_admin_password>";

    // Initialize connection object.
    $connection = pg_connect("host=$host dbname=$database user=$user password=$password")
                or die("Failed to create connection to database: ". pg_last_error(). ".<br/>");

    print "Successfully created connection to database. <br/>";

    // Modify some data in table.
    $new_quantity = 200;
    $name = '\'banana\'';
    $query = "UPDATE inventory SET quantity = $new_quantity WHERE name = $name;";
    pg_query($connection, $query) 
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). ".<br/>");
    print "Updated 1 row of data. </br>";

    // Closing connection
    pg_close($connection);
?>

Verileri silme

Bağlanmak ve DELETE SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın.

Kod, PostgreSQL için Azure Veritabanı’na bağlanmak amacıyla pg_connect() yöntemini çağırır. Ardından bir komut çalıştırmak için pg_query() yöntemini ve bir hata oluşursa ayrıntıları kontrol etmek için pg_last_error() yöntemini çağırır. Daha sonra bağlantıyı kapatmak için pg_close() yöntemini çağırır.

$host, $database, $user ve $password parametrelerini kendi değerlerinizle değiştirin.

<?php
    // Initialize connection variables.
    $host = "mydemoserver.postgres.database.azure.com";
    $database = "mypgsqldb";
    $user = "mylogin@mydemoserver";
    $password = "<server_admin_password>";

    // Initialize connection object.
    $connection = pg_connect("host=$host dbname=$database user=$user password=$password")
            or die("Failed to create connection to database: ". pg_last_error(). ". </br>");

    print "Successfully created connection to database. <br/>";

    // Delete some data from table.
    $name = '\'orange\'';
    $query = "DELETE FROM inventory WHERE name = $name;";
    pg_query($connection, $query) 
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). ". <br/>");
    print "Deleted 1 row of data. <br/>";

    // Closing connection
    pg_close($connection);
?>

Kaynakları temizleme

Bu hızlı başlangıçta kullanılan tüm kaynakları temizlemek için aşağıdaki komutu kullanarak kaynak grubunu silin:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Sonraki adımlar