Выполнение SQL-запросов в БД PostgreSQL на PHP

Краткое руководство по выполнению SQL-запросов с использованием языка PHP в базе данных PostgreSQL.

За основу берём скрипт подключения PHP к СУБД PostgreSQL, так как в нём прописано условие, которое при ошибке подключения выводит соответствующее сообщение.

Само по себе успешное подключение предполагает дальнейшую работу с базой данных. Поэтому вместо строчки

echo "Подключение к БД прошло успешно…";

можно начинать писать скрипт.

Запрос может быть любым. В нашем примере запрос будет выбирать все колонки и строки из таблицы shop_goods:

SELECT * FROM shop_goods;

Для начала необходимо сформировать начальную структуру документа при помощи конструкции echo()

echo('<html>
<head>
<meta charset="utf-8">
<title>PostgreSQL query example</title>
</head>
<body>');

Определим необходимый нам запрос и объявим для него переменную $query

$query = pg_query($db_connect, "SELECT * FROM shop_goods");

Далее проверим условием if, выполняется ли запрос — если не выполняется, выводим соответствующую ошибку:

if (!$query) {
        die ("Ошибка выполнения запроса");
}

Затем циклом while обходим строки таблицы:

while ($result = pg_fetch_array($query)) {
     echo "<p>{$result['id']}. {$result['title']} - {$result['category']} - {$result['price']} рублей - {$result['quantity']} штук </p> ";
}

Этот цикл позволит вывести результаты запроса.

После этого закрываем теги документа:

echo('</body>
</html>');

чистим результаты запроса и закрываем соединение с базой данных:

pg_free_result($query);
pg_close();

Полностью рабочий скрипт будет выглядеть примерно так:

<?php

$connect_data = "host=127.0.0.1 port=5432 dbname=test_db user=db_user password=yourPassword";

$db_connect = pg_connect($connect_data);

if (!$db_connect) {
    die("Ошибка подключения: " . pg_result_error());
}

echo('<html>
<head>
<meta charset="utf-8">
<title>PostgreSQL query example</title>
</head>
<body>');

$query = pg_query($db_connect, "SELECT * FROM shop_goods");

if (!$query) {
        die ("Ошибка выполнения запроса");
}

while ($result = pg_fetch_array($query)) {
     echo "<p>{$result['id']}. {$result['title']} - {$result['category']} - {$result['price']} рублей - {$result['quantity']} штук </p> ";
}

echo('</body>
</html>');

pg_free_result($query);
pg_close();

?>

Результат выполнения данного скрипта будет выглядеть так:

1. Ноутбук ASUS VivoBook A540L - Ноутбуки - 15000.00 рублей - 10 штук

2. МФУ Kyocera Ecosys M2535fdn - МФУ - 22000.00 рублей - 5 штук

3. Сумка для ноутбука 15-дюймов, серая - Сумки и чехлы - 3500.00 рублей - 6 штук

4. Картридж Cactus CS-CE285A - Картриджи - 950.00 рублей - 15 штук

5. SSD диск GIGABYTE 2.5" 256 Гб SATA III NAND TLC (GP-GSTFS31256GTND) - SSD-диски - 3000.00 рублей - 18 штук

6. USB флешка 64Gb Kingston DTX/64Gb USB 3.2 Gen 1 (USB 3.0) - USB-диски, флешки - 750.00 рублей - 35 штук

7. USB флешка 128Gb Kingston DTX/128Gb USB 3.2 Gen 1 (USB 3.0) - USB-диски, флешки - 1300.00 рублей - 25 штук

8. Телевизор Samsung UE50TU8000UX, 4K Ultra HD, черный - Телевизоры - 46800.00 рублей - 3 штук

9. Кронштейн ONKRON M15, для LCD телевизора 32"-75", черный - Кронштейны - 4100.00 рублей - 8 штук

10. Телевизор LG 43LM5700PLA, черный - Телевизоры - 32000.00 рублей - 7 штук

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *