<?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.29 $ --> <!-- Purpose: database.vendors --> <!-- Membership: bundled, external --> <reference id="ref.pgsql"> <title>PostgreSQL Functions</title> <titleabbrev>PostgreSQL</titleabbrev> <partintro> <section id="pgsql.intro"> &reftitle.intro; <para> PostgreSQL database is Open Source product and available without cost. Postgres, developed originally in the UC Berkeley Computer Science Department, pioneered many of the object-relational concepts now becoming available in some commercial databases. It provides SQL92/SQL99 language support, transactions, referential integrity, stored procedures and type extensibility. PostgreSQL is an open source descendant of this original Berkeley code. </para> </section> <section id="pgsql.requirements"> &reftitle.required; <para> To use PostgreSQL support, you need PostgreSQL 6.5 or later, PostgreSQL 8.0 or later to enable all PostgreSQL module features. PostgreSQL supports many character encodings including multibyte character encoding. The current version and more information about PostgreSQL is available at <ulink url="&url.pgsql;">&url.pgsql;</ulink> and the <ulink url="&url.pgsql.manual;">PostgreSQL Documentation</ulink>. </para> </section> &reference.pgsql.configure; &reference.pgsql.ini; <section id="pgsql.resources"> &reftitle.resources; <para> There are two resource types used in the PostgreSQL module. The first one is the link identifier for a database connection, the second a resource which holds the result of a query. </para> </section> &reference.pgsql.constants; <section id="pgsql.notes"> &reftitle.notes; <note> <para> Not all functions are supported by all builds. It depends on your libpq (The PostgreSQL C client library) version and how libpq is compiled. If PHP PostgreSQL extensions are missing, then it is because your libpq version does not support them. </para> </note> <note> <para> Most PostgreSQL functions accept <parameter>connection</parameter> as the first optional parameter. If it is not provided, the last opened connection is used. If it doesn't exist, functions return &false;. </para> </note> <note> <para> PostgreSQL automatically folds all identifiers (e.g. table/column names) to lower-case values at object creation time and at query time. To force the use of mixed or upper case identifiers, you must escape the identifier using double quotes (""). </para> </note> <note> <para> PostgreSQL does not have special commands for fetching database schema information (eg. all the tables in the current database). Instead, there is a standard schema named <literal>information_schema</literal> in PostgreSQL 7.4 and above containing system views with all the necessary information, in an easily queryable form. See the <ulink url="&url.pgsql.manual;">PostgreSQL Documentation</ulink> for full details. </para> </note> </section> <section id="pgsql.examples"> &reftitle.examples; <para> This simple example shows how to connect, execute a query, print resulting rows and disconnect from a PostgreSQL database. <example> <title>PostgreSQL extension overview example</title> <programlisting role="php"> <![CDATA[ <?php // Connecting, selecting database $dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo") or die('Could not connect: ' . pg_last_error()); // Performing SQL query $query = 'SELECT * FROM authors'; $result = pg_query($query) or die('Query failed: ' . pg_last_error()); // Printing results in HTML echo "<table>\n"; while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; // Free resultset pg_free_result($result); // Closing connection pg_close($dbconn); ?> ]]> </programlisting> </example> </para> </section> </partintro> &reference.pgsql.functions; </reference> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->