Está en la página 1de 8

Conexin PHP y PostgreSQL en Windows

EasyPHP 5.3.0 PostgreSQL 8.4 Microsoft Windows 7

Para poder hacer funcionar nuestro programa, necesitamos configurar dos archivos el httpd.conf de apache y el php.ini de php. Para configurar el httpd.conf de apache hacemos lo siguiente:

En mi caso este archivo tambin se encuentra en C:\Program Files\EasyPHP5.3.0\conf_files\httpd.conf. Una vez abierto el archivo, le vamos a indicar que cargue el archivo libpq.dll de postgresql, en mi caso lo tengo dentro de C:/Program Files/PostgreSQL/8.4/bin/libpq.dll.

Una vez modificado el archivo httpd.conf, paramos a modificar el archivo php.ini.

Este archivo tambin lo tengo dentro de C:\Program Files\EasyPHP5.3.0\conf_files\php.ini. Una vez abierto el archivo, activamos la extencin php_pgsql.dll quitandole el ; .

Guardamos y reiniciamos el EasyPHP.

Ahora vamos a crear nuestra base de datos de prueba. Habrimos el pgAdmin, nos conectamos, seleccionamos Databases, damos clic derecho y seleccionamos la opcin New Database.

Damos un nombre a nuestra base.. y seleccionamos OK.

Una vez creada nuestra base de datos, la hubicamos dentro de Databases, damos clic derecho sobre ella y seleccionamos la opcin CREATE script.. Seguido se nos habrir el SQL Editor..

Dentro del SQL Editor vamos a crear nuestra tabla mediante script:
CREATE SEQUENCE people_id_seq; ALTER SEQUENCE people_id_seq RESTART WITH 1; CREATE TABLE people ( id INTEGER NOT NULL DEFAULT NEXTVAL('people_id_seq'), fullname VARCHAR (254), address VARCHAR (254), CONSTRAINT people_pkey PRIMARY KEY (id) );

La tabla contiene un id autoincrementable, un campo llamado fullname (nombre completo) y address (direccin).. Listo!!.. solo nos falta crear nuestra aplicacin php para probar. Para esto el ejemplo consta de 3 archivos

index.php, que es el que tiene la pgina principal y muestra los elementos agregados database.php, tiene los parametros de conexin query.php, contiene el mtodo de consulta y el insert

database.php
<?php define ('DB_HOST','localhost'); //Host de postgresql (puede ser otro) define ('DB_USER','postgres'); //Usuario de postgresql (puede ser otro) define ('DB_PASS','1234'); //Password de postgresql (puede ser otro) define ('DB_NAME','mydatabase'); //Database de postgresql (puede ser otra) define ('DB_PORT','5432'); //Puerto de postgresql (puede ser otro) ?>

query.php
<?php include 'database.php'; class Query { function get_people() { $conn = pg_connect("user=".DB_USER." port=".DB_PORT." dbname=".DB_NAME." host=".DB_HOST); $people=null; if ($conn) { $result = pg_query($conn, "SELECT * FROM people"); if (pg_num_rows($result)>0) { while ($row = pg_fetch_row($result)) { $people[$row[0]]['id']=$row[0]; $people[$row[0]]['fullname']=$row[1]; $people[$row[0]]['address']=$row[2]; } } } else { echo "Conexin Erronea"; exit; } return $people; }

function add_people($fullname, $address) { $conn = pg_connect("user=".DB_USER." port=".DB_PORT." dbname=".DB_NAME." host=".DB_HOST); if ($conn) { $result = pg_query($conn, "INSERT INTO people (fullname,address) VALUES('$fullname','$address')"); } else { echo "Conexin Erronea"; exit; } } } ?>

index.php
<?php include 'query.php' ?> <html> <head> <title>Pagina index de prueba</title> <?php $q=new Query(); if($_SERVER['REQUEST_METHOD'] == 'POST') { $q>add_people($_POST['fullname'],$_POST['address']); } $people=$q->get_people(); if($people!=null) { foreach($people as $person) { ?> <table> <tr> <td>Nombre completo: </td> <td><?php echo $person['fullname']; ?></td> </tr> <tr> <td>Direccion: </td> <td><?php echo $person['address']; ?></td> </tr> </table>------- - ------- - ------- ------- - ------<?php } }

else { echo "No hay personas agregadas!"; } ?> </head> <body> <br /><br /><br /><br /> <h3>Agregar</h3> <form action="" method="post"> <table> <tr> <td>Nombre completo</td> <td><input type="text" name="fullname" /></td> </tr> <tr> <td>Direccion</td> <td><input type="text" name="address" /></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td></td> <td><input type="submit" value="Agregar" /></td> </tr> </table> </form> </body> </html>

Listo.

También podría gustarte