кодесурса
«MySQL

PostgreSQL с php - подробное введение

script1adsense2code
script1adsense3code

Требования к разработке и установке

Чтобы установить PostgreSQL на Linux и Windows, мы обсудили здесь подробное описание процесса установки.

Вы можете использовать веб-сервер Apache, PHP, PostgreSQL и phpPgAdmin (который является отличным инструментом для управления проектами PHP-PostgreSQL) для создания базового веб-приложения.

Самый простой способ установить и внедрить все вышеперечисленное программное обеспечение - это установить стек WAPP (Windows, Apache, PostgreSQL, PHP). BITNAMI - это пакет программного обеспечения, который предлагает пакет WAPP . Вы можете скачать его с http://bitnami.org/learn_more/installers и, дважды щелкнув по файлу установщика, его легко установить в Windows. Во время установки он спрашивает, где его установить, а также запрашивает пароль, который впоследствии потребуется для входа в phpPgAdmin.

Подключайтесь к PostgreSQL с помощью собственных функций PHP

Предположим, у нас есть следующая таблица (книга) в базе данных "postgres". Вот структура таблицы:

 имя_столбца | is_nullable | тип данных | character_maximum_length | numeric_precision | NUMERIC_SCALE
--------------------- + ------------- + -------------- ----- + -------------------------- + ----------------- - + ---------------
 book_id | НЕТ | характер меняется | 10 | |
 автор | ДА | характер меняется | 25 | |
 издатель | ДА | характер меняется | 25 | |
 date_of_publication | ДА | дата | | |
 цена | ДА | числовой | | 8 | 2
 

PHP предоставляет множество функций для работы непосредственно с базами данных PostgreSQL. Вот некоторые функции:

pg_connect : функция используется для открытия соединения PostgreSQL.

Версия : (PHP 4, PHP 5)

Синтаксис :

 ресурс pg_connect (строка $ connection_string [, int $ connect_type]) 

Параметры :

  • connection_string: Строка connection_string может быть пустой, чтобы использовать все параметры по умолчанию, или она может содержать один или несколько параметров, разделенных пробелами. В настоящее время распознаются следующие ключевые слова параметров: host, hostaddr, port, dbname (по умолчанию - значение пользователя), user, пароль, connect_timeout, options, tty (игнорируется), sslmode, requiressl (устарело в пользу sslmode) и service. Какой из этих аргументов существует, зависит от вашей версии PostgreSQL.
  • connect_type: если передается PGSQL_CONNECT_FORCE_NEW, создается новое соединение, даже если строка_соединения идентична существующему соединению. Если задано PGSQL_CONNECT_ASYNC, то соединение устанавливается асинхронно. Состояние соединения может быть проверено с помощью pg_connect_poll () или pg_connection_status ().

Возвращаемое значение : ресурс соединения PostgreSQL в случае успеха, FALSE в случае ошибки.

pg_query: выполнить запрос

Версия : (PHP 4> = 4.2.0, PHP 5)

Синтаксис :

 ресурс pg_query ([ресурс $ соединение], строка $ запрос) 

Параметры :

  • соединение: ресурс соединения с базой данных PostgreSQL. Если соединение отсутствует, используется соединение по умолчанию. Соединением по умолчанию является последнее соединение, выполненное с помощью pg_connect () или pg_pconnect ().
  • запрос: SQL-оператор или операторы, которые должны быть выполнены.

Возвращаемое значение : ресурс результата запроса в случае успеха или FALSE в случае ошибки.

Вставить данные в таблицу с помощью PHP

Мы создадим HTML-форму и PHP-скрипт для вставки данных в таблицу «book». Вот код (имя файла insert.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); 
?>

Вот как выглядит форма для вставки данных:

«вставить

Используйте эту форму, чтобы ввести некоторые данные в таблицу «книга».

Получение и обновление данных с помощью PHP

На следующем шаге мы создадим форму, чтобы мы могли видеть детали записей книги и обновлять существующие данные таблицы «книга». Для этого мы создадим форму, в которой пользователь может указать идентификатор книги, и он покажет всю информацию, хранящуюся в базе данных, относительно этой конкретной книги. Итак, вы узнаете, как получать данные из таблицы, как отображать эти данные с помощью PHP и как обновлять данные.

Вот код (имя файла 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;"; } } ?>

Соединитесь с PostgreSQL, используя PDO (объекты данных PHP)

Начиная с версии 5.1, PHP предоставляет новую библиотеку абстракций подключения к базе данных, объекты данных PHP или PDO. PDO абстрагирует доступ к базе данных и позволяет использовать код, который может обрабатывать различные типы баз данных.

Используйте следующий код PHP для подключения к PostgreSQL и выбора базы данных. Замените $ dbname на имя базы данных, $ dbuser на ваше имя пользователя и $ dbpass на ваш пароль.

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

Обработка ошибок подключения:

Если есть какие-либо ошибки соединения, объект PDOException будет брошен. Вы можете перехватить исключение, если хотите обработать условие ошибки, или оставить его глобальному обработчику исключений, который можно настроить с помощью set_exception_handler ().

Вот пример для обработки ошибок:

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

Запрос:

После того, как код подключится к PostgreSQL и выберет базу данных, вы можете запускать SQL-запросы и выполнять другие операции. Например, следующий код PHP запускает SQL-запрос, который извлекает имя, фамилию и страну (порядок по стране) из таблицы user_details и сохраняет результат в $ sql.

<?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>"; } ?>

Итак, вы узнали, как вставлять данные из формы HTML и как получать, отображать и обновлять данные в PostgreSQL с помощью PHP.

Смотрите также: SQL-инъекция , объекты данных PHP (PDO)

Предыдущий: Подключение к PostgreSQL
Далее: Типы данных

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code