Nota:
No todas las funciones son compatibles con todas las versiones. Eso depende de la versión de libpq (librería cliente C de PostgreSQL) y cómo ha sido compilado libpq. Si las extensiones de PHP PostgreSQL faltan, entonces es porque su versión de libpq no los admite.
Nota:
La mayoría de las funciones PostgreSQL aceptan
connectioncomo primer parámetro opcional. Si no está siempre se usa la última conexión abierta. Si esta no existe las funciones retornaránfalse.
Nota:
PostgreSQL cambia automáticamente todos los identificadores (ejm. tablas/nombres de columnas) a minúsculas en el momento de la creación y al hacer las consultas. Para forzar el uso de mayúsculas se debe escapar el identificador usando comillas dobles ("").
Nota:
PostgresSQL no tiene comandos especiales para mostrar la información del esquema de la base de datos (ejm. todas las tablas de la actual base de datos). En cambio, hay un esquema estándar llamado
information_schemaque contiene las vistas del sistema con toda la información necesaria, es facilmente consultable. Vea la » Documentación de PostgreSQL para más detalles.
A simple conversion for 1D PostgreSQL array data:
// =====
//Example #1 (An array of IP addresses):
<?php
$pgsqlArr = '{192.168.1.1,10.1.1.1}';
preg_match('/^{(.*)}$/', $pgsqlArr, $matches);
$phpArr = str_getcsv($matches[1]);
print_r($phpArr);
}
// Output:
// Array
// (
// [0] => 192.168.1.1
// [1] => 10.1.1.1
// )
// =====
// =====
// Example #2 (An array of strings including spaces and commas):
<?php
$pgsqlArr = '{string1,string2,"string,3","string 4"}';
preg_match('/^{(.*)}$/', $pgsqlArr, $matches);
$phpArr = str_getcsv($matches[1]);
print_r($phpArr);
}
// Output:
// Array
// (
// [0] => string1
// [1] => string2
// [2] => string,3
// [3] => string 4
// )
// =====I've found another function to mimic the following mysql list tables function (http://www.php.net/manual/en/function.mysql-list-tables.php) that's more useful for my target:
function pg_list_tables() {
$sql = "SELECT a.relname AS Name
FROM pg_class a, pg_user b
WHERE ( relkind = 'r') and relname !~ '^pg_' AND relname !~ '^sql_'
AND relname !~ '^xin[vx][0-9]+' AND b.usesysid = a.relowner
AND NOT (EXISTS (SELECT viewname FROM pg_views WHERE viewname=a.relname));";
return(pg_query($conn, $sql));
}Running RedHat Linux and Apache with suexec enabled you must include pgsql.so on each .php file using dl("pgsql.so") and remove "extension=pgsql.so" from php.ini, otherwise Apache (httpd) will not start.