Buat pengguna dengan kata sandi:

http://www.postgresql.org/docs/current/static/sql-createuser.html

CREATE USER name [ [ WITH ] option [ ... ] ]

where option can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid

Kemudian berikan hak pengguna pada basis data tertentu:

http://www.postgresql.org/docs/current/static/sql-grant.html

Contoh:

grant all privileges on database db_name to someuser;

Saya telah menginstal Apache2 dengan dukungan php5 dan semuanya berfungsi di sana. Saya telah menginstal PostgreSQL dan saya dapat terhubung dengannya menggunakan terminal dan menjalankan pernyataan SQL.

MASALAH: Saya tidak bisa mendapatkan koneksi yang berfungsi antara skrip php saya dan database PostgreSQL. Saya telah menginstal php5-pgsql yang dipaket dari repositori, tetapi koneksi tidak berfungsi.

Saya mendapatkan pesan kesalahan berikut:

PHP Fatal Error: Panggil ke fungsi pg_connect () yang tidak terdefinisi di /var/www/[myfile[.php on line [X]

Bagaimana cara saya mengaktifkan dukungan untuk koneksi PostgreSQL di PHP5 di ubuntu 11.04?

EDIT: Memeriksa phpinfo () dan tidak menemukan entri untuk PostgreSQL. Saya tidak tahu mengapa demikian, saya DID menginstal paket php5-pgsql untuk ubuntu 11.04.

Inilah yang berhasil: Saya menginstal phppgadmin dari repositori Ubuntu. Ini tidak hanya membuat alat Nice tersedia untuk saya sekarang, tetapi juga menginstal paket-paket yang diperlukan untuk terhubung ke postgresql php.

Setelah itu, semuanya ada di parameter koneksi. Itu tidak akan terhubung ke database di server lokal sampai saya menentukan koneksi Host, port, database, pengguna, dan kata sandi dalam urutan itu di pg_connect ().

Saya masih tidak tahu mengapa menginstal php5-pgsql sendiri tidak mengaktifkan koneksi PostgreSQL dari php. Masukan apa pun tentang ini akan sangat membantu.

Lompati ke konten utama

Browser ini sudah tidak didukung.

Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.

Mulai cepat: Menggunakan PHP untuk menyambungkan dan meminta data di Azure Database for PostgreSQL - Server Tunggal

  • Artikel
  • 09/23/2022
  • 5 menit untuk membaca

Dalam artikel ini

BERLAKU UNTUK:

Azure Database for PostgreSQL - Server Tunggal

Mulai cepat ini menunjukkan cara menyambungkan ke Azure Database for PostgreSQL menggunakan aplikasi PHP. Mulai cepat ini menunjukkan cara menggunakan pernyataan SQL untuk meminta, menyisipkan, memperbarui, dan menghapus data dalam database. Langkah-langkah dalam artikel ini mengasumsikan bahwa Anda sudah terbiasa dengan pengembangan menggunakan PHP, dan baru bekerja dengan Azure Database for PostgreSQL.

Prasyarat

Mulai cepat ini menggunakan sumber daya yang dibuat di salah satu panduan ini sebagai titik awal:

  • Pembuatan DB - Portal
  • Membuat DB - Azure CLI

Memasang PHP

Pasang PHP di server Anda sendiri, atau buat aplikasi web Azure yang menyertakan PHP.

Windows

  • Unduh PHP versi 7.1.4 non-thread safe (x64)
  • Pasang PHP dan lihat manual PHP untuk konfigurasi lebih lanjut
  • Kode menggunakan kelas pgsql (ext/php_pgsql.dll) yang disertakan dalam penginstalan PHP.
  • Mengaktifkan ekstensi pgsql dengan mengedit file konfigurasi php.ini, biasanya terletak di C:\Program Files\PHP\v7.1\php.ini. File konfigurasi harus berisi baris dengan teks extension=php_pgsql.so. Jika tidak ditampilkan, tambahkan teks dan simpan file. Jika teks ada, tetapi dikomentari dengan awalan titik koma, batalkan komentar pada teks dengan menghapus titik koma.

Linux (Ubuntu)

  • Unduh PHP versi 7.1.4 non-thread safe (x64)
  • Pasang PHP dan lihat manual PHP untuk konfigurasi lebih lanjut
  • Kode ini menggunakan kelas pgsql (php_pgsql.so). Pasang dengan menjalankan sudo apt-get install php-pgsql.
  • Aktifkan ekstensi pgsql dengan mengedit file konfigurasi /etc/php/7.0/mods-available/pgsql.ini. File konfigurasi harus berisi baris dengan teks extension=php_pgsql.so. Jika tidak ditampilkan, tambahkan teks dan simpan file. Jika teks ada, tetapi dikomentari dengan awalan titik koma, batalkan komentar pada teks dengan menghapus titik koma.

MacOS

  • Unduh PHP versi 7.1.4
  • Pasang PHP dan lihat manual PHP untuk konfigurasi lebih lanjut

Dapatkan informasi koneksi

Dapatkan informasi koneksi yang dibutuhkan untuk menghubungkan ke Azure Database for PostgreSQL. Anda memerlukan nama server dan info masuk yang sepenuhnya memenuhi syarat.

  1. Masuk ke portal Microsoft Azure.
  2. Dari menu sebelah kiri di portal Microsoft Azure, pilih Semua sumber daya, lalu cari server yang telah Anda buat (seperti mydemoserver).
  3. Pilih nama server.
  4. Dari panel Gambaran Umum server, buat catatan Nama server dan Nama untuk masuk admin server. Jika Anda lupa kata sandi, Anda juga dapat mengatur ulang kata sandi dari panel ini.

Menyambungkan dan membuat tabel

Gunakan kode berikut untuk menyambungkan dan membuat tabel menggunakan pernyataan SQL CREATE TABLE, diikuti dengan pernyataan SQL INSERT INTO untuk menambahkan baris ke dalam tabel.

Kode memanggil metode pg_connect() untuk menyambungkan ke Azure Database for PostgreSQL. Kemudian memanggil metode pg_query() beberapa kali untuk menjalankan beberapa perintah, dan pg_last_error() untuk memeriksa detail jika kesalahan terjadi setiap kali. Kemudian memanggil metode pg_close() untuk menutup koneksi.

Ganti parameter $host, $database, $user, dan $password dengan nilai Anda sendiri.

<?php
	// Initialize connection variables.
	$host = "mydemoserver.postgres.database.azure.com";
	$database = "mypgsqldb";
	$user = "[email protected]";
	$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);
?>

Membaca data

Gunakan kode berikut untuk menyambungkan dan membaca data menggunakan pernyataan SQL SELECT.

Kode memanggil metode pg_connect() untuk menyambungkan ke Azure Database for PostgreSQL. Kemudian memanggil metode pg_query() untuk menjalankan perintah SELECT, menyimpan hasil dalam tataan hasil, dan pg_last_error() untuk memeriksa detail jika terjadi kesalahan. Untuk membaca tataan hasil, metode pg_fetch_row() dipanggil dalam perulangan, sekali per baris, dan data baris diambil dalam larik $row, dengan satu nilai data per kolom di setiap posisi larik. Untuk mengosongkan tataan hasil, metode pg_free_result() dipanggil. Kemudian memanggil metode pg_close() untuk menutup koneksi.

Ganti parameter $host, $database, $user, dan $password dengan nilai Anda sendiri.

<?php
	// Initialize connection variables.
	$host = "mydemoserver.postgres.database.azure.com";
	$database = "mypgsqldb";
	$user = "[email protected]";
	$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);
?>

Memperbarui data

Gunakan kode berikut untuk menyambungkan dan memperbarui data menggunakan pernyataan SQL UPDATE.

Kode memanggil metode pg_connect() untuk menyambungkan ke Azure Database for PostgreSQL. Kemudian memanggil metode pg_query() untuk menjalankan perintah, dan pg_last_error() untuk memeriksa detail jika terjadi kesalahan. Kemudian memanggil metode pg_close() untuk menutup koneksi.

Ganti parameter $host, $database, $user, dan $password dengan nilai Anda sendiri.

<?php
	// Initialize connection variables.
	$host = "mydemoserver.postgres.database.azure.com";
	$database = "mypgsqldb";
	$user = "[email protected]";
	$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);
?>

Menghapus data

Gunakan kode berikut dengan tujuan menyambungkan dan membaca data menggunakan pernyataan SQL HAPUS.

Kode memanggil metode pg_connect() untuk menyambungkan ke Azure Database for PostgreSQL. Kemudian memanggil metode pg_query() untuk menjalankan perintah, dan pg_last_error() untuk memeriksa detail jika terjadi kesalahan. Kemudian memanggil metode pg_close() untuk menutup koneksi.

Ganti parameter $host, $database, $user, dan $password dengan nilai Anda sendiri.

<?php
	// Initialize connection variables.
	$host = "mydemoserver.postgres.database.azure.com";
	$database = "mypgsqldb";
	$user = "[email protected]";
	$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);
?>

Membersihkan sumber daya

Untuk membersihkan semua sumber daya yang digunakan selama mulai cepat ini, hapus grup sumber daya menggunakan perintah berikut:

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

Langkah berikutnya

Apa kegunaan PostgreSQL?

PostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Peranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data.

Kenapa harus PostgreSQL?

Sistem manajemen database ini memiliki performa stabil, keamanan tinggi, serta fitur melimpah. PostgreSQL adalah database yang banyak digunakan pada web app, aplikasi mobile, dan aplikasi analytics. Itulah kenapa aplikasi yang membutuhkan pengolahan data yang lebih kompleks akan lebih cocok menggunakan postgreSQL.