Foros del Web » Programando para Internet » PHP »

PHP y MySQL

Estas en el tema de PHP y MySQL en el foro de PHP en Foros del Web. Estoy haciendo una simple consulta a una bbdd pero no se por que, este codigo no funciona Código: <?php //Conectamos a la bbdd $conexion = ...
  #1 (permalink)  
Antiguo 13/01/2013, 06:07
 
Fecha de Ingreso: noviembre-2011
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
PHP y MySQL

Estoy haciendo una simple consulta a una bbdd pero no se por que, este codigo no funciona

Código:
<?php

  //Conectamos a la bbdd
  $conexion = mysql_connect("localhost","root","") or die ("No se ha podido realizar la conexion");
  
  /
  //Seleccionamos la bbdd
  mysql_select_db("alumnos",$conexion)
    
  $sql = "SELECT * FROM alumno";
  
  $resul = mysql_query($sql);
  
  while($reg = mysql_fetch_assoc($resul)){
    print("DNI: " . $reg['DNI'] . "<br />");
    print("Nombre: " . $reg['NOMBRE'] . "<br />");
    print("Apellidos: " . $reg['ApellidoUNO'] . " " . $reg['ApellidoDOS'] . "<br />");
    print("Fecha de nacimiento: " . $reg['FechaNACIMIENTO'] . "<br />");
    print("Repetidor: " . $reg['REPETIR'] . "<br />");
  }
  
  mysql_close($conexion);
Estoy aprendiendo a usar PHP + MySQL y ya no se que hacer, he mirado el manual que hay en el wiki y esta igual..
  #2 (permalink)  
Antiguo 13/01/2013, 06:59
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 12 años, 2 meses
Puntos: 130
Respuesta: PHP y MySQL

Da algun error o que es lo que no funciona?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 13/01/2013, 09:07
 
Fecha de Ingreso: noviembre-2011
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Respuesta: PHP y MySQL

No dice absolutamente nada. La pagina se queda en blanco y punto
  #4 (permalink)  
Antiguo 13/01/2013, 09:18
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: PHP y MySQL

Debéis actualizaros ya, creo que es algo que ya está bastante comentado por el foro.
Las funciones de mysql_*, están obsoletas. Si estáis aprendiendo, debéis saber que desaparecerán de PHP en un futuro cercano.

Ésto es un de los cánceres actuales que tiene la comunidad de PHP., la desactualización y fragmentación de la documentación que hay por internet.

Te sugiero que portes tu código a PDO o a mysqli si te es más cómodo (aunque personalmente, te recomiendo PDO).

Para saber más sobre tu error, deberás modificar tu php.ini actual y activar el error_reporting y display_errors.

Saludos
  #5 (permalink)  
Antiguo 13/01/2013, 09:32
 
Fecha de Ingreso: noviembre-2011
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Respuesta: PHP y MySQL

Muchas gracias por tu respuesta.

Podrias decirme por que prefieres PDO antes que mysqli?
  #6 (permalink)  
Antiguo 13/01/2013, 10:36
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: PHP y MySQL

En resumidas cuentas, por estas principales razones:

1 - PDO viene por defecto con varios drivers, es decir, podrás utilizar el mismo código para varias bases de datos ( en algunos casos haciendo pequeños cambios, pues no todos los DBMS manejan el mismo código SQL) tan sólo con indicar eldriver adecuado.

Con PDO podrás manejar MySql, Postgres, Informix, SQLite, entre otros. Mientras que con mysqli sólo podrás manejar MySql.

Claro punto a favor de PDO.

2 - Pese a que los dos sistemas hacen uso de sentencias preparadas (prepared statements), PDO tiene una ventaja en éste sentido, ya que te posibilita nombrar los parámetros. Un ejemplo (de la doc)

Código PHP:
Ver original
  1. <?php
  2. /* Ejecutar una sentencia preparada vinculando varialbes de PHP */
  3. $calorías = 150;
  4. $color = 'red';
  5. $gsent = $gbd->prepare('SELECT name, colour, calories
  6.    FROM fruit
  7.    WHERE calories < :calories AND colour = :colour');
  8. $gsent->bindParam(':calories', $calorías, PDO::PARAM_INT);
  9. $gsent->bindParam(':colour', $color, PDO::PARAM_STR, 12);
  10. $gsent->execute();
  11. ?>

Con mysqli, se deben sustituir parámetros respecto a la posición que tienen en la consulta (PDO también permite hacerlo de ésta manera).

Por el lado de mysqli, he de decir que su principal ventaja es que se puede utilizar de formal procedural (no orientada a objetos), a parte de la orientada a objetos. (personalmente no me aprece una gran ventaja, ya que se pierde la ventaja de la encapsulación y la modularidad, que creo que es completamente esencial en una "conexion" a la base de datos).

Sobra decir que la seguridad es infinitamente superior en cualquiera de éstos métodos que con las funciones obsoletas. No deberás preocuparte por ataques de inyección SQL y cosas similares. PDO/mysqli se encargarán de protegerse. (Lo que no quiere decir que no se tengan que validar los datos, ojo)


Te recomiendo utilizar PDO. La gran mayoria de los frameworks PHP utilizan esta extensión. Una vez que seas familiar con su uso, podrás diseñaraplicaciones mas escalables y más seguras.

Saludos
  #7 (permalink)  
Antiguo 13/01/2013, 10:54
 
Fecha de Ingreso: noviembre-2011
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Respuesta: PHP y MySQL

Muchas gracias por el resumen, haciendo una consulta en PHP + MySQL usando PDO, me dice que no encuentra el driver.

He mirado en la configuracion y efectivamente, no tiene driver.



Y la configuracion del php.ini lo tengo de la siguiente manera.



Cual es el problema?
  #8 (permalink)  
Antiguo 13/01/2013, 10:57
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: PHP y MySQL

¿Has reiniciado el servidor?
  #9 (permalink)  
Antiguo 13/01/2013, 11:25
 
Fecha de Ingreso: noviembre-2011
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Respuesta: PHP y MySQL

Si, y me continua saliendo lo mismo. Hasta he reiniciado el pc.. por si las moscas..

Uso GNU/Linux, concretamente Arch Linux, he mirado por los repositorios y no hay nada asi como php-pdo ni nada, asi que no se que puede ser...

EDITO= Hace falta poder extension=pdo.so ?

Última edición por xexio; 13/01/2013 a las 11:39 Razón: añadir informacion
  #10 (permalink)  
Antiguo 13/01/2013, 14:43
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: PHP y MySQL

MM pues no se que pueda ser. PDO debería venir compilado (pues ya no se utiliza como módulo compartido) en tu instalación de PHP. Con descomentar los drivers adecuados debería funcionar.

Asegúrate de que están los módulos *.so correspondientes en la carpeta

Puede que sea algo relativo a la distribución que estás utilizando.
  #11 (permalink)  
Antiguo 14/01/2013, 05:23
 
Fecha de Ingreso: noviembre-2011
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Respuesta: PHP y MySQL

He preguntado en los foros de mi distribucion a ver que me dicen...
Pero tambien he mirado por php.net y en principio no hace falta, asi que, me parece un poco extraño
  #12 (permalink)  
Antiguo 14/01/2013, 11:03
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: PHP y MySQL

¿Algún progreso al respecto? ¿Podrías enseñar el error que te lanza para que pueda ayudarte a atacar el problema?

Una solución rápida puede ser eliminar tu instalación de PHP de tu sistema y probar otro repositorio, o compilar los fuentes desde la página oficial.

Saludos
  #13 (permalink)  
Antiguo 15/01/2013, 06:27
 
Fecha de Ingreso: noviembre-2011
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Respuesta: PHP y MySQL

Por ahora nada... Creo que es un bug de mi distribution, porque hay varios reportes abiertos.

PD: Tambien he probado a usar una instalacion limpia y nada, con las fuentes de la pagina web no, esta noche lo probare a ver...

Etiquetas: mysql, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:45.