Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Shell Root

#1701
PHP / Re: Ayuda con base de datos
21 Junio 2011, 02:53 AM
A ver, se supone que un sistema de votos, tiene que hacer lo siguiente como básico...

Tener un link o botón, -lo que sea-, esté deberá de realizar la siguiente acción... Consultar el total actual de votos e incrementarlo en 1. Donde haces esto?
#1702
PHP / Re: Ayuda con base de datos
21 Junio 2011, 02:37 AM
1. No se lo que está haciendo, creo que un sistema de votaciones, de la pagina o las publicaciones?
2. No tienes porque mostrar todo el código, sólo muestra la parte en la que realizas el conteo. -Supongo que sabes cual es-.

@EFEX, da igual, es lo mismo tener...

Código (sql) [Seleccionar]
UPDATE tipoUsuario SET estado = 0 WHERE( id = 1 );
qué
Código (sql) [Seleccionar]
UPDATE tipoUsuario SET estado = '0' WHERE( id = '1' );
#1703
PHP / Re: Ayuda con base de datos
21 Junio 2011, 02:22 AM
jajaja y que es lo que quieres hacer?
#1704
Yo no es que sepa mucho de C, pero cuidado con los caracteres especiales, ñ. Al final necesitabas de algunas variables, y ni las llamabas.
#include <stdio.h>

int main(){

  char nombre[20];
  int edad = 0;
  int ano  = 0;

  printf("Como te llamas?\n");
  scanf("%s", nombre);

  printf("Hola %s, dime tu edad!\n", nombre);
  scanf("%d", &edad);

  ano = 2011-edad;
  printf("%s naciste en el año %d\n", nombre, ano);

  edad = edad*365;
  printf("%s, has vivido mas de %d DIAS!\n", nombre, edad);

  return 0;
}



shellroot@shellroot:~/Escritorio$ gcc PoC.c
shellroot@shellroot:~/Escritorio$ ./a.out
Como te llamas?
Alex
Hola Alex, dime tu edad!
20
Alex naciste en el año 1991
Alex, has vivido mas de 7300 DIAS!
#1705
MANEJO DE DATOS

         Ahora veremos somo sería la forma en que se retornarían los datos, existen 3 opciones fundamentales para esto, NUMÉRICA, ASOCIATIVA, NUMÉRICA y ASOCIATIVA, cada una de está con una función diferente.

Supongamos que tenemos una base de datos con una tabla de USUARIO con los campos de ID, CEDULA y NOMBRE. En cuya tabla existen un registro con los siguientes valores,

Código (sql) [Seleccionar]
mysql> SELECT id, cedula, nombre FROM usuario;
+----+------------+--------+
| id | cedula     | nombre |
+----+------------+--------+
|  1 | 1030010000 | Alex   |
+----+------------+--------+
1 row in set (0.00 sec)


NUMÉRICA
         Esta opción lo que hace es identificar el campo por medio de identificador que en este caso es un número. Por ejemplo, teniendo la base de datos anterior, realicemos un SELECT básico, así.
Código (php) [Seleccionar]
$sql = "SELECT id, cedula, nombre FROM usuario;";
$query = $conn->query($sql);
while( $fila = $query->fetch(PDO::FETCH_NUM) ){
  $datos[] = $fila;
}


Al mostrar el array deberíamos obtener los siguientes resultados,
Código (php) [Seleccionar]
Array( [0] => Array( [0] => 1 [1] => 1030010000 [2] => Alex ) )


ASOCIATIVA
         Esta opción lo que hace es identificar el campo por medio de identificador que en este caso sería el nombre del campo. Siguiendo el ejemplo anterior,
Código (php) [Seleccionar]
$sql = "SELECT id, cedula, nombre FROM usuario;";
$query = $conn->query($sql);
while( $fila = $query->fetch(PDO::FETCH_ASSOC) ){
  $datos[] = $fila;
}


Al mostrar el array deberíamos obtener los siguientes resultados,
Código (php) [Seleccionar]
Array( [0] => Array( ['id'] => 1 ['cedula'] => 1030010000 ['nombre'] => Alex ) )


NUMÉRICA y ASOCIATIVA
         En esta opción se unen las dos funciones anteriores en uno. Miremos el ejemplo en base con el ejemplo anterior,

Código (php) [Seleccionar]
$sql = "SELECT id, cedula, nombre FROM usuario;";
$query = $conn->query($sql);
while( $fila = $query->fetch(PDO::FETCH_BOTH) ){
  $datos[] = $fila;
}


Al mostrar el array deberíamos obtener los siguientes resultados,
Código (php) [Seleccionar]
Array( [0] => Array( ['id'] => 1 [0] => 1 ['cedula'] => 1030010000 [1] => 1030010000 ['nombre'] => Alex [2] => Alex ) )


NOTA GENERAL: El primer ARRAY es de los registros de la consulta y el segundo ARRAY, es donde tendrá los valores.
#1706
EJECUCIÓN DE QUERYS

         En la ejecución de querys se pueden definir 2 categorías. DIRECTAS, que es cuando se realiza un INSERT, UPDATE y sabemos que nunca devolverá un dato... y con RETORNO DE DATOS, que es cuando de realiza un SELECT, donde si sabemos que tendremos que manejar registros devueltos por la consulta.

Antes de mirar como se realiza esta acción con PDO miremos como se realizaba con los 2 motores de base de datos que tenemos de ejemplo.
Código (php) [Seleccionar]
# MySQL
$query = mysql_query( $sql, $cnn );

# PostgreSQL
$query = pg_query( $cnn, $sql );



DIRECTA
         Esta es la forma en la que no tendremos interacción de ninguna clase con datos, sólo se ejecutará la query y los posibles valores de retorno sería VERDADERO o FALSO, para identificar el estado de la ejecución de la query. Se realizaría de la siguiente forma,
Código (php) [Seleccionar]
$cnn->exec("INSERT INTO usuario (id, cedula, nombre) VALUES(1, '1037610909', 'Alex');");

Para este caso podríamos realizar la validación para ver si se ejecuto o no, la query. Así,
Código (php) [Seleccionar]
$query = $cnn->exec("INSERT INTO usuario (id, cedula, nombre) VALUES(1, '1037610909', 'Alex');");
if ($query !== FALSE){
   # ...
}


RETORNO DE DATOS
         Esta es la forma en la que sí tendremos interacción de con datos que devuelve la consulta, para este caso tendríamos valores de retorno. Se realizaría de la siguiente forma,
Código (php) [Seleccionar]
$query = $cnn->query("SELECT id, cedula, nombre FROM usuario;");

En el próximo apartado veremos como se manejan los datos de retorno de la query.
#1707
CONEXIÓN A LA BASE DE DATOS


         Principalmente lo que debemos hacer es realizar una simple conexión a cualquier base de datos, una de las ventajas y caracteristicas que tiene PDO es qué tiene el mismo string de conexión, -por así decirlo-, para cualquier motor de base de datos que está soporta. Aquí veremos algunas de estás conexiones en MySQL y PostgreSQL, para ver la diferencia y la simplicidad.

Con MySQL y PostgreSQL nos conectábamos de la siguiente forma,

Código (php) [Seleccionar]
# MySQL
mysql_connect("$host", "$usuario", "$contraseña");
mysql_select_db("$baseDatos");

# PostgreSQL
pg_connect("host = $host dbname = $baseDatos user = $usuario password = $contraseña");


Ahora con PDO lo hacemos general de la siguiente forma, -sólo cambiaría el driver de conexión-,

Código (php) [Seleccionar]
#MySQL
$conn = new PDO("mysql:host = $host; dbname = $baseDatos", $usuario, $contraseña);

# PostgreSQL
$conn = new PDO("pgsql:host = $host port = $puerto dbname = $baseDatos", $usuario, $contraseña);


Notamos que utiliza la misma estructura para la conexión en cualquiera de los 2 motores de base de datos.

PD: Por alguna extraña razón en la variable de contraseña al ponerla sin la ñ, el foro lo agrega #FAIL!
#1708
TRABAJANDO CON PDO
PHP Data Object



CONTENIDO

         1. CONEXIÓN A LA BASE DE DATOS.
         2. EJECUCIÓN DE QUERYS
              2.1 DIRECTA.
              2.2 RETORNO DE DATOS.
              2.3 MANEJO DE DATOS.
                   2.3.1 ARRAY
                        2.3.1.1 NUMÉRICO.
                        2.3.1.2 ASOCIATIVO.
                        2.3.1.3 NUMÉRICO y ASOCIATIVO.
                   2.3.1
                   2.3.1
         3.
         4.
         5.
         6.
         7.
         ∞. BIBLIOTECA DE CÓDIGO.

Fecha ultima actualización: 20 de Junio de 2011
#1710
Bugs y Exploits / Re: ¿Que significa esto?
19 Junio 2011, 20:42 PM
Esto significa que una aplicación ha tratado de hacer más de 75.000 consultas (conexiones) por hora en su sitio web... Esto quizás pueda causar un DDoS