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=>

Crear Tabla 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


Detalles de la tabla creada "cliente"
tienda=> \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=> INSERT INTO cliente (nombre,apellido,direccion,telefono) VALUES ('Peter','Stown','Av 12apt 45','21035987');
INSERT 0 1


Consultar tabla
tienda=> 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";
?>

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...

8 comentarios:

Anónimo dijo...

holaaa tu publicacion me ha servido muchisimo! me gustaria estar contacto contigo para ver si me puedes ayudar ya que soy nueva en la programacion y quiero aprender! te dejo mi correo jen_marquez@hotmail.com :)

Anónimo dijo...

muy bueno este blogs estas publicacion esta muy interesante

luis castro dijo...

Excelente amigo me ha sido de gran utilidad

Richard Loaiza dijo...

excelente para los novatos como yo....

Anónimo dijo...

hola por que no haces un ejemplo de inserción en tablas relacionas?, por lo menos dos tablas? por fk

Unknown dijo...

gracias por tu publicacion me ha servido mucho cuando puedas colocar mas estaremos agradecidos ya que son muy buenas.

Anónimo dijo...

Muchas gracias hermano, muy interesante, didáctico, útil e interesante el contenido de tu blog

Anónimo dijo...

muy bien pero deberia de escribir las otras consultas eliminar , actualizar , consular individual y consulta general