php con postgres desde windows

Como les había prometido, un pequeño curso en php con postgres desde windows. Empezaremos descargar nuestra principal herramienta para que php y postgres en windows puedan funcionar sin hacer ninguna modificación a algún archivo, todo grafico desde una simple ventana.


Descargaremos el *.exe desde la web de postgres link de descarga>> php con postgres desde windows. Luego de descargar lo ejecutamos e instalamos normal, mostrare algunas imágenes de la instalación: 





Name: postgres 
Passwd: el q tu quieras










Aqui seleccionas ApachePHP y phpPgAdmin.





Selecciona el servidor mirror que mejor te convengas, dependiendo de tu ubicación 










Luego de esta imagen que esta arriba aparecerán las opciones de instalar los paquetes que tu seleccionaste para tu uso




Fin de la instalacion!!!, ahora a trabajar con lo que nos interesa q es sobre este curso en php con postgres en windows

Abriremos la consola de windows(CMD), ejecutar >>CMD, y ubiquemos en la carpeta donde instalaron postgresql ,en mi caso yo instale en "C:\Archivos de programa\", luego nos ubicamos en "postgresql\bin"
q seria en C:\Archivos de programa\postgresql\bin.

Los  archivos que aparescan con *.exe en esta carpeta, les puede solicitar la ayuda para poder usarlos, 
ejemplo

POSTGRESQL EN WINDOWS
C:\Archivos de programa\postgresql\bin>createuser.exe --help
createuser crea un nuevo rol de PostgreSQL.

Empleo:
  createuser [OPCIÓN]... [ROL]

Opciones:
  -c, --connection-limit=N  límite de conexiones para el rol
                            (predeterminado: sin límite)
  -d, --createdb            el rol podrá crear bases de datos
  -D, --no-createdb         el rol no podrá crear bases de datos
  -e, --echo                mostrar las órdenes a medida que se ejecutan
  -E, --encrypted           almacenar la constraseña cifrada
  -i, --inherit             el rol heredará los privilegios de los roles
                            los cuales es miembro (predeterminado)
  -I, --no-inherit          rol no heredará privilegios
  -l, --login               el rol podrá conectarse (predeterminado)
  -L, --no-login            el rol no podrá conectarse
  -N, --unencrypted         almacenar la contraseña sin cifrar
  -P, --pwprompt            asignar una contraseña al nuevo rol
  -r, --createrole          el rol podrá crear otros roles
  -R, --no-createrole       el rol no podrá crear otros roles
  -s, --superuser           el rol será un superusuario
  -S, --no-superuser        el rol no será un superusuario
  --help                    desplegar esta ayuda y salir
  --version                 desplegar información de versión y salir

Opciones de conexión:
  -h, --host=ANFITRIÓN      nombre del servidor o directorio del socket
  -p, --port=PUERTO         puerto del servidor
  -U, --username=NOMBRE     nombre de usuario con el cual conectarse
                            (no el usuario a crear)
  -w, --no-password         nunca pedir contraseña
  -W, --password            forzar la petición de contraseña

Si no se especifican -d, -D, -r, -R, -s, -S o el ROL, se preguntará
interactivamente.

  Ahora a crear nuestro usuario para trabajar este curso php con postgres

 1. Crear usuario en la postgres
    C:\Archivos de programa\postgresql\bin>createuser -U postgres -P alfo  
     Enter password for new user:
     Enter it again:
     Shall the new user be allowed to create databases? (y/n) y
     Shall the new user be allowed to create more new users? (y/n) y
     Password:

2. Crear base de datos desde la consola windows, Base de datos "escuela"
    C:\Archivos de programa\postgresql\bin>createdb.exe -h 127.0.0.1  -U alfo  escuela
     Password:

3. Entrar a la DB creada, DB escuela 
    C:\Archivos de programa\postgresql\bin> psql.exe -d escuela -U postgres -W
   o puedes usar tu usuario creado
    C:\Archivos de programa\postgresql\bin> psql.exe -d escuela -U alfo -W
     escuela=#

4. Una vez adentro, podes ejecutar el comand de ayuda
    escuela=#\h

5. Para movernos de por varias DB, podemos usar el comando
    escuela=#\c tienda
     password:

     Ahora está conectado a la base de datos «tienda».
     tienda=#

Al crear una tabla, debemos de saber q tipo de registros vamos a usar, por ejemplo
si es solo nombre podemos usar char, si es numero numeric, si es combinacion de numero alphanumerico,
si queremos q se autoincremente usamos autoincrementent. 
Nota: En algunos lenguajes sql cambia la sintaxis, busquen los tipos de registros para postgresql

De este modo, para crear una tabla es necesario definir el tipo de información que se almacenara en cada columna. PgSQL posee varios tipos de datos, los más usados son:


    * VARCHAR(n) Almacena cadena de caracteres de longitud variable, de longitud máxima n.
    * CHAR(n). Almacena cadena de caracteres de longitud fija, de longitud n.
    * INTEGER. Almacena números enteros como 2,33,107,15228, etc.
    * NUMERIC. Almacena números enteros y decimales.
    * DATE, almacena fechas.
    * FLOAT: numérico con signo de doble palabra y coma flotante.
    * TEXT. Guarda textos largos.
    * SERIAL. Crea una secuencia y la asigna a una columna como llave de la tabla. 


Para crear una tabla se usa el comando “CREATE TABLE nombre_de_tabla”. Por ejemplo, vamos a crear la tabla empleados. Corte y pegue las siguientes lineas :

CREATE TABLE empleados (
id serial,                   --Indice de la tabla
nombre varchar(50),          --nombre del empleado
rfc varchar(20) UNIQUE,      --registro de hacienda del empleado
fechac date,                 --fecha de nacimiento del empleado
sucursal varchar(30),        --sucursal donde labora
sueldo money NOT NULL        --Sueldo
); 

Apliquemos lo antes visto

 6. Crear tablas en DB
   escuela=# create table profesores (
   Nombre char(20),apellido char(20),asignatura char(20), telefono numeric(8));

CREATE TABLE

7. Como puedo ver las tablas que tiene una base de datos??
   con el comando "\dt"
   ejemplo
   escuela=# \dt
   
           Listado de relaciones
 Schema |        Nombre        | Tipo  |  Dueño
--------+----------------------+-------+----------
 public | Profesores           | tabla | postgres
 public | alumnos              | tabla | postgres
 public | Mantenimiento        | tabla | postgres
 public | biblioteca           | tabla | postgres
 public | aranceles            | tabla | postgres


8. una vez creadas las tablas, podemos ver lo q tiene cada una de ellas en su registro
    escuela=# select * from profesores;
 
Nombre |   apellido   |   asignatura | telefono
-------+--------------+--------------+------------


9. Usando la sentencia 
   INSERT INTO tabla (columna1, columna2) VALUES ('valor uno', 'valor dos');  o podemos
   INSERT INTO tabla VALUES ('valor uno', 'valor dos');
   podemos insertar los registros en las tablas


escuela=# insert into profesores (nombre, apellido, telefono) values ('Juan Jose','Perez Soza','26563145');
INSERT 0 3

como ven en este ejemplo no hemos insertado asignatura, miramos la tabla y aparecera esto
escuela=# select * from profesores;

Nombre   |   apellido   |   asignatura | telefono
---------+--------------+--------------+------------
Juan Jose   Perez Soza                   26563145


Tambien podemos insertar registros sin omitir ningun campo
escuela=# INSERT INTO profesores VALUES ('Fred','Quarry ','fisico','25686945');
INSERT 0 4

miramos la tabla y aparecera esto
escuela=# select * from profesores;

Nombre   |   apellido   |   asignatura | telefono
---------+--------------+--------------+------------
Juan Jose   Perez Soza                   26563145
Fred       Quarry            fisico      25686945);

 PHP CON POSTGRES EN WINDOWS
10. Ahora nos iremos a nuestro server apache, en donde el directorio de www en mi caso se encuentra en "C:\AppServ\apache\www\" . 


Ahora crearemos un archivo en ese directorio con un click derecho >> Nuevo >> Documento Text
Lo renombraremos "conex.php" y lo abriremos con el "WORDPAD"



<?php
// conex.php
$user = 'alfo';
$passwd = '123456';
$db = 'escuela';
$port = 5432;
$host = '127.0.0.1';
$strCnx = "host=$host port=$port dbname=$db user=$user password=$passwd";
?>



Crearemos otro para hacer la consulta desde php con postgres
"consulta.php"

<?php
//


consulta.php

include "C:\AppServ\apache\www\conex.php"; 


$con = pg_connect ($strCnx) or die ("Error de conexion.". pg_last_error());

echo "conexion exitosa <hr>";
echo "curso en php con postgres en windows <hr>";

$resultado = pg_query($con, "SELECT * FROM profesores");
if (!$resultado) { 
                        echo "<b>Error de busqueda</b>"; 
                       exit;
                        }

$filas=pg_numrows($resultado); 
if ($filas==0) { 
                echo "No se encontro ningun registro\n"; exit;
               } 
                else
               {
               echo "<ul>";
                for($cont=0;$cont<$filas;$cont++)
                { 
                 $campo1=pg_result($resultado,$cont,0);
                 $campo2=pg_result($resultado,$cont,1);
                 $campo3=pg_result($resultado,$cont,2);
                 $campo4=pg_result($resultado,$cont,3);
             
                 echo " <li>$campo1 $campo2 $campo3 $campo4\n";
                }
               }
pg_FreeResult($resultado);
?>



Listo, verificar si apache esta corriendo!, abrimos un navegador y en la URL teipeamos


http://localhost/consulta.php


Pantalla del navegador


conexion exitosa


curso en php con postgres en windows

  • Juan Jose Perez Soza 26563145
  • Fred Quarry fisico 25686945



Espero que les sirva muchos este pequeño curso en php con postgres en windows, pronto publicare nuevos artículos, alguna duda déjenla en los comentario

conectar php con postgres

Conectarmeros php con postgres, para poder trabajar con la base de datos postgresql, para eso empezaremos creando un usuario en postgres, el usuario nuevo se llamara"town" este sera creado con el superusuario "postgres", este usuario solo tendra permiso para trabajar nada mas en la DB q le asignemos, con esto quiero decir q el no puede crear, borrar, modificar DB/usuarios

Crando User en postgres
# createuser  -Upostgres -sDRP town

Passwd: 12345

Luego de haber creado el usuario, vamos a crear la Base de Datos que usara este usuario.

Crear DB en postgres para user town
# createdb -U postgres -O town tienda


Entrar de postgres con el usuario "town" y a la DB tienda
# psql -h 127.0.0.1 -Utown tienda

tienda=>

Crear Tabla postgres en DB  tienda
tienda=> CREATE TABLE cliente (
idcliente serial PRIMARY KEY,
nombre VARCHAR(30),
apellido VARCHAR(30),
direccion VARCHAR(200),
telefono DECIMAL(10));
 
Ver cuantas tablas hay en DB tienda
tienda=>\dt

           Listado de relaciones
 Schema |     Nombre     | Tipo    | Dueño
--------------+----------------------+-----------+-------
 public   |    cliente         | tabla   | town


Listo hemos creado un user en postgres para nuestra DB, una base de datos y tabla, todo desde la consola. Ahora crearemos un archivos php para verificar si php se puede conectar a postgres.


Conectar PHP con Postgres
Crearemos un archivo con el nombre de conectar.php (Como tu quieras el nombre del archivo).


conectar.php

<?php
$user = 'town';
$passwd = '12345';
$db = 'tienda';
$port = 5432;
$host = 'localhost';
$strCnx = "host=$host port=$port dbname=$db user=$user password=$passwd";
$cnx = pg_connect($strCnx) or die ("Error de conexion. ". pg_last_error());
echo "Conexion exitosa <hr>";
?>


Ahora guardaremos este archivo en nuestro servidor web,  en nuestro ejemplo use apache en linux, guardare en mi carpeta /var/www/conectar.php.

Abrimos el navegador y escribimelos en la URL
http://localhost/conectar.php

y aparecera este este mensaje con una linea

Conexion exitosa
                                                                                                              
 


Pronto creare otro tutorial para trabajar php con postgres desde windows
Cualquier duda, escriban en comentarios

php con postgres - Insertar registros

Como sabemos PostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD y PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor, como sabemos entre las ventajas de php tiene la capacidad de conexión con la mayoría de los motores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.
 
Empezaremos creando un usuario en postgres, el usuario nuevo se llamara
"town" este sera creado con el superusuario "postgres", este usuario solo tendra permiso para trabajar nada mas en la DB q le asignemos, con esto quiero decir q el no puede crear, borrar, modificar DB/usuarios

Crando User
# createuser  -Upostgres -sDRP town

Passwd: 12345

Luego de haber creado el usuario, vamos a crear la Base de Datos que usara este usuario.

Crear DB para user town
# createdb -U postgres -O town tienda


Entrar de Postgres con el usuario "town" y a la DB tienda
# psql -h 127.0.0.1 -Utown tienda

tienda=&gt;

Crear Tabla en DB tienda
tienda=&gt; CREATE TABLE cliente (
idcliente serial PRIMARY KEY,
nombre VARCHAR(30),
apellido VARCHAR(30),
direccion VARCHAR(200),
telefono DECIMAL(10));
 
Ver cuantas tablas hay en DB tienda
tienda=&gt;\dt

           Listado de relaciones
 Schema |     Nombre     | Tipo    | Dueño
--------------+----------------------+-----------+-------
 public   |    cliente         | tabla   | town


Detalles de la tabla creada "cliente"
tienda=&gt; \d cliente;

                               Tabla «public.cliente»
   Columna    |          Tipo                      |        Modificadores                          
-------------+-------------------------+-------------------------------
 idcliente      | integer                          | not null default extval('cliente_idcliente_seq'::regclass)
 nombre       | character varying(30)   |
 apellido      | character varying(30)   |
 direccion    | character varying(200) |
 telefono     | numeric(10,0)                 |
Índices:
    «cliente_pkey» PRIMARY KEY, btree (idcliente)

Inserta registros en la tabla Cliente
tienda=&gt; INSERT INTO cliente (nombre,apellido,direccion,telefono) VALUES ('Peter','Stown','Av 12apt 45','21035987');
INSERT 0 1


Consultar tabla
tienda=&gt; SELECT * FROM cliente;

 idcliente | nombre | apellido |     direccion       | telefono
---------+--------+--------+-----------------+--------------
 1              | Peter    | Stown    | Av 12apt 45       | 21035987
(1 filas)

Listo hemos creado un user para nuestra DB, una base de datos, tabla y hemos insertado registros a la tabla, todo desde la consola. Ahora crearemos un file.php para conectar nuestras DB a php, y asi desde web insertar archivos y consultar.


Conectar PHP con Postgres
crearemos un archivo con el nombre de common.inc (Como tu quieras el nombre del archivo).


inc.php
$user = 'town';
$passwd = '12345';
$db = 'tienda';
$port = 5432;
$host = 'localhost';
$strCnx = "host=$host port=$port dbname=$db user=$user password=$passwd";
?&gt;

Ahora crearemos el archivo de insertar archivos

agregar.php

<html>
<head>
<title>postgreSQL - tienda</title>
</head>

<body>
<h1>postgreSQL - cliente</h1>

<?php
include_once '../inc.php';
$cnx = pg_connect($strCnx) or die ("Error de conexion. ". pg_last_error());
echo "Conexion exitosa<br>";





# Ejecutando la Consulta
if ( $_POST ) {
  $result = pg_query($cnx, "INSERT INTO cliente (nombre,apellido,direccion,telefono) VALUES ('" . pg_escape_string($_POST['nombre']) . "','" . pg_escape_string($_POST['apellido']) . "','" .  pg_escape_string ($_POST['direccion']) . "'," . ((int)$_POST['telefono']) . " )");
  if (!$result) {
    echo "Query: Un error ha occurido.\n";
    exit;
  }
}
if ( $_POST )
  echo "<div class=\"info\">Registro insertado
<a href=\"./ver\">volver</a></div>";
?>
<form action="" method="post">
<label>Nombre</label>
<input type="text" name="nombre" value="" class="txtbox long"/>
<label>apellido</label>
<input type="text" name="apellido" value="" class="txtbox long"/>
<label>Direccion</label>
<input type="text" name="direccion" value="" class="txtbox long"/>
<label>Telefono</label>
<input type="text" name="telefono" value="" class="txtbox"/>
<label>Password</label>
<input type="text" name="password" value="" class="txtbox"/>

<br />
<br />
<input type="submit" value="Guardar" class="btn"
/> <a href="./ver">volver</a>
</form>
<?php
pg_close($cnx);
?>
</table>
</body>
</html>


Ahora si apache esta RUN/Ejecutandose, abrimos el navegador y taipeamos

http://localhost/agregar.php

listo!! usted puede ingresar sus clientes desde php, sin estar en la consola.
Seguire en otra entrada con la consulta de estos dados...