Краткое руководство по выполнению 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 штук