PHP PostgreSQL hiển thị kết quả truy vấn

Tiện ích mở rộng PostgreSQL được bật theo mặc định trong các bản phát hành mới nhất của PHP 5. 3. x. Có thể vô hiệu hóa nó bằng cách sử dụng --without-pssql tại thời điểm biên dịch. Tuy nhiên, bạn có thể sử dụng lệnh yum để cài đặt giao diện PHP -PostgreSQL −

yum install php-pgsql

Trước khi bạn bắt đầu sử dụng giao diện PHP PostgreSQL, hãy tìm pg_hba. conf trong thư mục cài đặt PostgreSQL của bạn và thêm dòng sau -

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5

Bạn có thể bắt đầu/khởi động lại máy chủ postgres, trong trường hợp nó không chạy, sử dụng lệnh sau -

[root@host]# service postgresql restart
Stopping postgresql service:                               [  OK  ]
Starting postgresql service:                               [  OK  ]

Người dùng Windows phải kích hoạt php_pgsql. dll để sử dụng tiện ích mở rộng này. DLL này được bao gồm trong các bản phân phối Windows trong các bản phát hành mới nhất của PHP 5. 3. x

Để biết hướng dẫn cài đặt chi tiết, vui lòng xem hướng dẫn PHP của chúng tôi và trang web chính thức của nó

API giao diện PHP

Sau đây là các quy trình PHP quan trọng, có thể đáp ứng yêu cầu của bạn để làm việc với cơ sở dữ liệu PostgreSQL từ chương trình PHP của bạn. Nếu bạn đang tìm kiếm một ứng dụng phức tạp hơn, thì bạn có thể xem tài liệu chính thức của PHP

S. Không. API & Mô tả1

tài nguyên pg_connect ( string $connection_string [, int $connect_type ] )

Thao tác này sẽ mở một kết nối tới cơ sở dữ liệu PostgreSQL được chỉ định bởi connection_string

Nếu PGSSQL_CONNECT_FORCE_NEW được truyền dưới dạng connect_type, thì một kết nối mới sẽ được tạo trong trường hợp có lệnh gọi pg_connect() lần thứ hai, ngay cả khi chuỗi_kết nối giống hệt với kết nối hiện có

2

bool pg_connection_reset ( tài nguyên $connection )

Quy trình này đặt lại kết nối. Nó rất hữu ích cho việc khôi phục lỗi. Trả về TRUE nếu thành công hoặc FALSE nếu thất bại

3

int pg_connection_status ( tài nguyên $connection )

Quy trình này trả về trạng thái của kết nối đã chỉ định. Trả về PGSSQL_CONNECTION_OK hoặc PGSSQL_CONNECTION_BAD

4

chuỗi pg_dbname ([ tài nguyên kết nối $ ] )

Quy trình này trả về tên của cơ sở dữ liệu mà tài nguyên kết nối PostgreSQL đã cho

5

tài nguyên pg_prepare ([ tài nguyên $connection ], chuỗi $stmtname, chuỗi $query )

Thao tác này sẽ gửi yêu cầu tạo câu lệnh đã chuẩn bị với các tham số đã cho và chờ hoàn thành

6

tài nguyên pg_execute ([ tài nguyên $connection ], chuỗi $stmtname, mảng $params )

Thường trình này sẽ gửi một yêu cầu để thực hiện một câu lệnh đã chuẩn bị với các tham số đã cho và chờ kết quả

7

tài nguyên pg_query ([ tài nguyên $connection ], chuỗi $query )

Quy trình này thực hiện truy vấn trên kết nối cơ sở dữ liệu đã chỉ định

8

mảng pg_fetch_row ( tài nguyên $result [, int $row ] )

Quy trình này tìm nạp một hàng dữ liệu từ kết quả được liên kết với tài nguyên kết quả đã chỉ định

9

mảng pg_fetch_all ( tài nguyên $result )

Thường trình này trả về một mảng chứa tất cả các hàng (bản ghi) trong tài nguyên kết quả

10

int pg_affected_rows ( tài nguyên $result )

Quy trình này trả về số hàng bị ảnh hưởng bởi các truy vấn INSERT, UPDATE và DELETE

11

int pg_num_rows ( tài nguyên $result )

Quy trình này trả về số lượng hàng trong tài nguyên kết quả PostgreSQL, ví dụ như số lượng hàng được trả về bởi câu lệnh SELECT

12

bool pg_close ([ tài nguyên kết nối $ ] )

Quy trình này đóng kết nối không liên tục tới cơ sở dữ liệu PostgreSQL được liên kết với tài nguyên kết nối đã cho

13

chuỗi pg_last_error ([ tài nguyên $connection ] )

Quy trình này trả về thông báo lỗi cuối cùng cho một kết nối nhất định

14

chuỗi pg_escape_literal ([ tài nguyên $connection ], chuỗi $data )

Quy trình này thoát khỏi một chữ để chèn vào trường văn bản

15

chuỗi pg_escape_string ([ tài nguyên $connection ], chuỗi $data )

Thói quen này thoát khỏi một chuỗi để truy vấn cơ sở dữ liệu

Kết nối với cơ sở dữ liệu

Đoạn mã PHP sau đây cho thấy cách chúng ta có thể sử dụng câu lệnh DELETE để xóa bất kỳ bản ghi nào, sau đó tìm nạp và hiển thị các bản ghi còn lại từ bảng COMPANY của chúng ta -

Bạn có thể sử dụng máy chủ Web Apache, PHP, PostgreSQL và phpPgAdmin (là một công cụ tuyệt vời để quản lý các dự án PHP-PostgreSQL) để xây dựng một ứng dụng web cơ bản

Cách dễ dàng nhất để cài đặt và triển khai tất cả các phần mềm được đề cập ở trên là cài đặt ngăn xếp WAPP (Windows, Apache, PostgreSQL, PHP). BITNAMI là gói phần mềm cung cấp gói WAPP. Bạn có thể tải xuống từ "http. //bitnami. org/learn_more/installers" và bằng cách nhấp đúp vào tệp trình cài đặt, nó sẽ dễ dàng được cài đặt trên Windows. Trong khi cài đặt, nó sẽ hỏi bạn cài đặt nó ở đâu và cũng yêu cầu nhập mật khẩu mà sau này sẽ được yêu cầu để đăng nhập phpPgAdmin

Kết nối với PostgreSQL bằng các hàm gốc PHP

Giả sử chúng ta có bảng (sách) sau trong cơ sở dữ liệu "postgres". Đây là cấu trúc của bảng

     column_name     | is_nullable |     data_type     | character_maximum_length | numeric_precision | numeric_scale
---------------------+-------------+-------------------+--------------------------+-------------------+---------------
 book_id             | NO          | character varying |                       10 |                   |
 author              | YES         | character varying |                       25 |                   |
 publisher           | YES         | character varying |                       25 |                   |
 date_of_publication | YES         | date              |                          |                   |
 price               | YES         | numeric           |                          |                 8 |             2
 

PHP cung cấp nhiều hàm để làm việc trực tiếp với cơ sở dữ liệu PostgreSQL. Dưới đây là một số chức năng

pg_connect. Hàm được sử dụng để mở kết nối PostgreSQL

Phiên bản. (PHP 4, PHP 5)

cú pháp

resource pg_connect ( string $connection_string [, int $connect_type ] )

Thông số

  • chuỗi kết nối. Chuỗi kết nối có thể trống để sử dụng tất cả các tham số mặc định hoặc có thể chứa một hoặc nhiều cài đặt tham số được phân tách bằng khoảng trắng. Các từ khóa tham số hiện được công nhận là. máy chủ, hostaddr, cổng, dbname (mặc định là giá trị của người dùng), người dùng, mật khẩu, connect_timeout, tùy chọn, tty (bỏ qua), sslmode, requiresl (không dùng nữa để ủng hộ sslmode) và dịch vụ. Đối số nào trong số này tồn tại tùy thuộc vào phiên bản PostgreSQL của bạn
  • connect_type. Nếu PGSSQL_CONNECT_FORCE_NEW được thông qua, thì một kết nối mới sẽ được tạo, ngay cả khi chuỗi_kết nối giống hệt với kết nối hiện có. Nếu PGSSQL_CONNECT_ASYNC được cung cấp thì kết nối được thiết lập không đồng bộ. Trạng thái của kết nối sau đó có thể được kiểm tra qua pg_connect_poll() hoặc pg_connection_status()

Giá trị trả về. Tài nguyên kết nối PostgreSQL khi thành công, FALSE khi thất bại

pg_query. Thực hiện một truy vấn

Phiên bản. (PHP 4 >= 4. 2. 0, PHP5)

cú pháp

resource pg_query ([ resource $connection ], string $query )

Thông số

  • sự liên quan. Tài nguyên kết nối cơ sở dữ liệu PostgreSQL. Khi không có kết nối, kết nối mặc định được sử dụng. Kết nối mặc định là kết nối cuối cùng được tạo bởi pg_connect() hoặc pg_pconnect()
  • truy vấn. Câu lệnh SQL hoặc các câu lệnh sẽ được thực thi

Giá trị trả về. Tài nguyên kết quả truy vấn khi thành công hoặc FALSE khi thất bại

Chèn dữ liệu vào bảng bằng PHP

Chúng tôi sẽ tạo một biểu mẫu HTML và tập lệnh PHP để chèn dữ liệu vào bảng "sách". Đây là mã (chèn tên tệp. php)

<!DOCTYPE html>
<head>
<title>Insert data to PostgreSQL with php - creating a simple web application</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
li {listt-style: none;}
</style>
</head>
<body>
<h2>Enter information regarding book</h2>
<ul>
<form name="insert" action="insert.php" method="POST" >
<li>Book ID:</li><li><input type="text" name="bookid" /></li>
<li>Book Name:</li><li><input type="text" name="book_name" /></li>
<li>Author:</li><li><input type="text" name="author" /></li>
<li>Publisher:</li><li><input type="text" name="publisher" /></li>
<li>Date of publication:</li><li><input type="text" name="dop" /></li>
<li>Price (USD):</li><li><input type="text" name="price" /></li>
<li><input type="submit" /></li>
</form>
</ul>
</body>
</html>
<?php
$db = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=admin123");
$query = "INSERT INTO book VALUES ('$_POST[bookid]','$_POST[book_name]',
'$_POST[author]','$_POST[publisher]','$_POST[dop]',
'$_POST[price]')";
$result = pg_query($query); 
?>

Đây là cách biểu mẫu để chèn dữ liệu trông như thế nào

PHP PostgreSQL hiển thị kết quả truy vấn

Sử dụng biểu mẫu này để nhập một số dữ liệu vào bảng "sách"

Truy xuất và cập nhật dữ liệu với PHP

Bước tiếp theo chúng ta sẽ tạo form để xem chi tiết các biểu ghi sách và cập nhật dữ liệu đã có của bảng “sách”. Đối với điều này, chúng tôi sẽ tạo một biểu mẫu nơi người dùng có thể cung cấp id sách và nó sẽ hiển thị tất cả thông tin được lưu trữ trong cơ sở dữ liệu liên quan đến cuốn sách cụ thể đó. Vì vậy, bạn sẽ học cách tìm nạp dữ liệu từ bảng, cách hiển thị dữ liệu đó bằng PHP và cách cập nhật dữ liệu

Đây là mã (tên tệp enter-bookid)

<!DOCTYPE html>
 <head>
<title>Enter bookid to display data - creating a simple web application</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> li {list-style: none;} </style> </head> <body> <h2>Enter bookid and enter</h2> <ul> <form name="display" action="enter-bookid.php" method="POST" > <li>Book ID:</li><li><input type="text" name="bookid" /></li> <li><input type="submit" name="submit" /></li> </form> </ul> </body> </html> <?php $db = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=admin123"); $result = pg_query($db, "SELECT * FROM book where book_id = '$_POST[bookid]'"); $row = pg_fetch_assoc($result); if (isset($_POST['submit'])) { echo "<ul> <form name='update' action='enter-bookid.php' method='POST' > <li>Book ID:</li><li><input type='text' name='bookid_updated' value='$row[book_id]' /></li> <li>Book Name:</li><li><input type='text' name='book_name_updated' value='$row[book_name]' /></li><li>Author:</li><li><input type='text' name='author_updated' value='$row[author]' /></li> <li>Publisher:</li><li><input type='text' name='publisher_updated' value='$row[publisher]' /></li> <li>Date of publication:</li><li><input type='text' name='dop_updated' value='$row[date_of_publication]' /></li> <li>Price (USD):</li><li><input type='text' name='price_updated' value='$row[price]' /></li> <li><input type='submit' name='new' /></li>
</form> </ul>"; } if (isset($_POST['new'])) { $result1 = pg_query($db, "UPDATE book SET book_id = '$_POST[bookid_updated]', book_name = '$_POST[book_name_updated]', author = '$_POST[author_updated]', publisher = '$_POST[publisher_updated]',date_of_publication = '$_POST[dop_updated]', price = '$_POST[price_updated]'"); if (!$result1) { echo "Update failed!!"; } else { echo "Update successfull;"; } } ?>

Kết nối với PostgreSQL bằng PDO (Đối tượng dữ liệu PHP)

Kể từ phiên bản 5. 1 PHP cung cấp thư viện trừu tượng hóa kết nối cơ sở dữ liệu mới, Đối tượng dữ liệu PHP hoặc PDO. PDO tóm tắt quyền truy cập cơ sở dữ liệu và cho phép bạn sử dụng mã có thể xử lý các loại cơ sở dữ liệu khác nhau

Sử dụng mã PHP sau để kết nối với PostgreSQL và chọn cơ sở dữ liệu. Thay thế $dbname bằng tên cơ sở dữ liệu, $dbuser bằng tên người dùng của bạn và $dbpass bằng mật khẩu của bạn

________số 8_______

Xử lý lỗi kết nối

Nếu có bất kỳ lỗi kết nối nào, một đối tượng PDOException sẽ bị ném. Bạn có thể bắt ngoại lệ nếu bạn muốn xử lý tình trạng lỗi hoặc bạn có thể để nó cho trình xử lý ngoại lệ chung có thể được thiết lập thông qua set_Exception_handler()

Dưới đây là một ví dụ để xử lý lỗi

<?php
$dbuser = 'postgres';
$dbpass = 'abc123';
$host = 'localhost';
$dbname='postgres';
$dbh = new PDO("pgsql:host=$host;dbname=$dbname", $dbuser, $dbpass, array(
PDO::ATTR_PERSISTENT => true));	
?>

Truy vấn

Sau khi mã kết nối với PostgreSQL và chọn cơ sở dữ liệu, bạn có thể chạy các truy vấn SQL và thực hiện các thao tác khác. Ví dụ: mã PHP sau chạy truy vấn SQL trích xuất tên, họ và quốc gia (thứ tự theo quốc gia) từ bảng user_details và .

<?php
try {
$dbuser = 'postgres'; $dbpass = 'abc123'; $host = 'localhost'; $dbname='postgres';
$connec = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); }catch (PDOException $e) { echo "Error : " . $e->getMessage() . "<br/>"; die(); } $sql = 'SELECT fname, lname, country FROM user_details ORDER BY country'; foreach ($connec->query($sql) as $row) { print $row['fname'] . " "; print $row['lname'] . "-->"; print $row['country'] . "<br>"; } ?>

Như vậy là bạn đã học cách chèn dữ liệu từ biểu mẫu HTML và cách tìm nạp, hiển thị và cập nhật dữ liệu lên PostgreSQL bằng PHP

Làm cách nào để lấy dữ liệu từ PostgreSQL trong php?

PostgreSQL PHP. Truy vấn dữ liệu .
Đầu tiên, kết nối với cơ sở dữ liệu PostgreSQL bằng cách tạo một đối tượng PDO mới
Thứ hai, gọi phương thức query() của đối tượng PDO. Phương thức query() chấp nhận câu lệnh SELECT làm đối số. .
Thứ ba, tìm nạp các hàng tiếp theo từ kết quả bằng cách gọi phương thức tìm nạp () của đối tượng PDOstatement

Làm cách nào để tìm nạp dữ liệu từ cơ sở dữ liệu PostgreSQL trong php và hiển thị trong bảng HTML?

Chúng ta sẽ làm theo các bước sau để tích hợp PostgreSQL với php. .
Kích hoạt mô-đun Postgres từ php. tập tin ini
Tạo chuỗi kết nối bằng cơ sở dữ liệu postgres
Nhận dữ liệu và hiển thị thành mẫu HTML

pg_query trong php là gì?

pg_query() thực hiện truy vấn trên kết nối cơ sở dữ liệu đã chỉ định . pg_query_params() nên được ưu tiên trong hầu hết các trường hợp. Nếu xảy ra lỗi và sai được trả về, chi tiết về lỗi có thể được truy xuất bằng hàm pg_last_error() nếu kết nối hợp lệ.

~* nghĩa là gì trong PostgreSQL?

~* thử so khớp không phân biệt chữ hoa chữ thường . . ~ thử khớp phân biệt chữ hoa chữ thường và trả về true nếu biểu thức chính quy không khớp với bất kỳ phần nào của chuỗi chủ đề. . ~* cố gắng khớp không phân biệt chữ hoa chữ thường và trả về true nếu biểu thức chính quy không khớp với bất kỳ phần nào của chuỗi chủ đề.