PHP es un lenguaje de scripting
de propósito general y de código abierto que está especialmente pensado para el
desarrollo web; Por otro lado este lenguaje nos permite conectarnos con
distintos motores de base de datos, tales como: MySQL, PostgreSQL, SQL Server,
Oracle, DB2, etc.
PostgreSQL es un sistema de
gestión de bases de datos relacionales, distribuido bajo licencia BSD (Berkeley
Software Distribution) y con su código fuente disponible libremente. Es el
sistema de gestión de bases de datos de código abierto más potente del mercado.
Es por ello que en este tutorial
les enseñare como conectar php con postgresql
por las distintas ventajas que esta tiene, para ello utilizaremos AppServer (Ver Como Instalar AppServer), tal como se muestra a
continuación:
Herramienta Software:
- PostgreSQL 9.1 Descargar
1° En primer lugar descargar e instalar PostgreSQL, luego crearemos un usuario, una base de datos, tal como se muestra a continuación:
Creación de Usuario:
postgres=# create user spark with password '123456';
CREATE ROLE
Creación de la Base de Datos:
postgres=# create database php_postgresql owner spark;
CREATE DATABASE
Conexión a la Base de Datos “php_postgresql”:
postgres=# \c php_postgresql spark localhost 5432;
Contraseña para usuario spark:
ADVERTENCIA: El código de página de la consola (850) difiere del código
de página de Windows (1252).
Los caracteres de 8 bits pueden funcionar incorrectamente.
Vea la página de referencia de psql «Notes for Windows users»
para obtener más detalles.
Ahora está conectado a la base de datos «php_postgresql» con el usuario «spark».
Creación de la Tabla “Usuario”:
Nota: El tipo de dato serial, es similar a la función que cumple el campo auto_increment en MySQL.
php_postgresql=> create table usuario(id serial primary key, usuario varchar(20) not null, contrasenia varchar(20) not null);
NOTICE: CREATE TABLE creará una secuencia implícita «usuario_id_seq» para la columna serial «usuario.id»
NOTICE: CREATE TABLE / PRIMARY KEY creará el índice implícito «usuario_pkey» para la tabla «usuario»
CREATE TABLE
Inserción de Datos para la Tabla “Usuario”:
php_postgresql=> insert into Usuario (usuario, contrasenia) values ('spark', '123456');
INSERT 0 1
php_postgresql=>
insert into Usuario (usuario, contrasenia) values ('patrick', '654321');
INSERT 0 1
INSERT 0 1
php_postgresql=> insert into Usuario (usuario, contrasenia) values
('wilder', '134265');
INSERT 0 1
INSERT 0 1
Verificación de Registros de la Tabla “Usuario”:
php_postgresql=> select * from Usuario;
id | usuario | contrasenia
----+---------+-------------
1 | spark | 123456
2 | patrick | 654321
3 | wilder | 134265
(3 filas)
----+---------+-------------
1 | spark | 123456
2 | patrick | 654321
3 | wilder | 134265
(3 filas)
php_postgresql=>
2° Después de haber creado la base de datos, tabla e insertar usuario, realizaremos la conexión de php con postgresql, tal como se muestra a continuación:
php_postgresql.php
<?php
$user = "spark";
$password = "123456";
$dbname = "php_postgresql";
$port = "5432";
$host = "localhost";
$cadenaConexion = "host=$host port=$port dbname=$dbname user=$user password=$password";
$conexion = pg_connect($cadenaConexion) or die("Error en la Conexión: ".pg_last_error());
echo "<h3>Conexion
Exitosa PHP - PostgreSQL</h3><hr><br>";
$query = "select id, usuario, contrasenia from usuario";
$resultado = pg_query($conexion, $query) or die("Error en la Consulta SQL");
$numReg = pg_num_rows($resultado);
if($numReg>0){
echo "<table
border='1' align='center'>
<tr bgcolor='skyblue'>
<th>ID</th>
<th>Usuario</th>
<th>Contrasena</th></tr>";
<tr bgcolor='skyblue'>
<th>ID</th>
<th>Usuario</th>
<th>Contrasena</th></tr>";
while ($fila=pg_fetch_array($resultado)) {
echo
"<tr><td>".$fila['id']."</td>";
echo "<td>".$fila['usuario']."</td>";
echo "<td>".$fila['contrasenia']."</td></tr>";
echo "<td>".$fila['usuario']."</td>";
echo "<td>".$fila['contrasenia']."</td></tr>";
}
echo "</table>";
}else{
echo "No hay Registros";
}
echo "</table>";
}else{
echo "No hay Registros";
}
pg_close($conexion);
?>
Referencia: PHP Sitio Oficial – PostgreSQL Sitio Oficial
Nota: Cualquier consulta comentar
o visitar la página de Facebook para resolver sus dudas…
Autor: SPaRk.
Gracias
ResponderEliminarÚtil y fácil, Gracias, excelente, ahora debo hacer una búsqueda en la misma tabla, alguna idea?
ResponderEliminarme sale error al querer conectar la base de datos ayuda por favor
ResponderEliminary si quiero conectar dos bases de datos?, ambas estan en el mismo server pero son dos bases de datos diferentes
ResponderEliminarohhh patrick tengo que hacer algo en el php ini
ResponderEliminarTienes que descomentar la extension php_pgsql.dll, es decir borrar el ";" de tal manera que te quede así extension=php_pgsql.dll
Eliminarcompile este codigo y con la base de datos y me sae este error:
ResponderEliminarFatal error: Call to undefined function pg_connect() in C:\AppServ\www\php_postgresql.php on line 11
Gracias !
ResponderEliminarbuenas tardes, requiero ayuda con un problema y quisiera saber si alguien puede ayudarme, tengo un servidor con centos 6.4 quiero conectar el php a la base de datos que tengo en el postgresql, pero al lanzar el aplicativo me muestra que no puede mostrar la pagina, agradezco la ayuda.
ResponderEliminarEstoy siguiendo los pasos tal cual (el mismo texto, es decir los mismos comandos) pero al escribir "\c php_postgresql spark localhost 5432;" me aparece en la terminal este mensaje "FATAL: Ident authentication failed for user "spark"
ResponderEliminarSe ha mantenido la conexión anterior" Espero que alguien me pueda ayudar por favor, se lo agradeceria mucho, es un trabajo escolar y llevo alrededor de dos días intentandolo.
De antemano gracias