Conexión PHP y Mysql

Veamos en unos sencillos pasos como consultar, insertar, modificar y eliminar datos  en una base Mysql con el lenguaje PHP.

Con el IDE que quieran vamos a crear un archivo index.php y dentro de él crearemos un formulario  para consultar un usuario y contraseña:

Dejando de lado lo feo que se ve mi formulario, sigamos, he llamado a los cuadros de texto tusuario y tcontra.

En Mysql  creamos una base de datos llamada consulta y le agregamos una tabla a la que llamé usuario; La tabla usuario tendrá solo 3 campos: usuario, contra y status.

insertaré unos datos y me quedará algo así:

Ahora crearemos la columna vertebral del tutorial: la clase para conectarnos y realizar las consultas en Mysql.

Crearé un archivo php que llamaré conexion.php y que guardaré en una carpeta llamada scripts. algo mas o menos así:

El código que debe contener el archivo conexion.php es el siguiente:


servidor,$this->usuario,$this->password)))
   {
	 echo "Error conectando a la base de datos";
	 exit();
   }
   if (!@mysql_select_db($this->basededatos,$link))
   {
	 echo "Error seleccionando la base de datos.";
	 exit();
   }
   return $link;
  }//fin de Conectarse
  
  
  //Metodo para devolver un set de registros
  function renglon($sql)
  {
	$link=$this->Conectarse();
	$rs=mysql_query($sql, $link);
	$row=mysql_fetch_array($rs);
	return $row;
  }//fin de Sqlqueryrow
  
  
  //Metodo para devolver varios set de registros
  function renglones($sql)
  {
	$link=$this->Conectarse();
	$rs=mysql_query($sql, $link);
	return $rs;
  }//fin de Sqlqueryrs
  
  
  //Metodo para ejecutar una consulta directa sin retorno
  function ejecutar($sql) 
  {
	$link=$this->Conectarse();
	$rs=mysql_query($sql, $link);
  }//fin de Sqlcommand
  
}  
?>

Quizá sea muy obvio pero explicaré a que corresponden las primeras 4 variables.

$basededatos,  este es el nombre de la base de datos a la que nos conectaremos en este caso será consulta.

$servidor es el nombre del server donde estamos corriendo nuestra aplicación.

$usuario y $password  es la cuenta  en mysql para acceder a la base de datos.

La primera función que aparece es conectarse() y esta es la encargada de establecer la comunicación con la base de datos utilizando las variables que ya expliqué anteriormente, si no hay ningun problema esta función nos devolverá un objeto mysql_connect, que es el canal por donde le enviaremos sentencias sql a gestor Mysql.

Las siguientes 3 funciones son: renglon(), renglones() y ejecutar();

La función renglon() la utilizaremos cuando sea necesario hacer una consulta que nos devuelva un solo registro que pueda contener varios campos:  por ejemplo consultamos un usuario y nos traerá además la contraseña y el status, pero solo nos devolverá los datos de ese usuario en especifico.

Vamos aponerlo en práctica:

En nuestro archivo index.php incluiremos el archivo conexion.php para utilizarlo dentro de nuestro script; Despues crearemos una instancia de la clase para conectarnos:

  

  include('scripts/conexion.php');
  $clase=new clase();

El formulario de login enviará datos por POST hacia sí mismo, entonces tendremos que cachar esos datos para realizar la consulta, si no me he explicado claramente no se preocupen, al final les pondré el código fuente para que lo descarguen y analicen.

Después de instanciar la clase, si el usuario ya ha presionado el botón «ingresar» entonces vamos a leer las variables por post y hacemos la consulta sql a la base de datos:

 

  $usuario=$_POST["tusuario"];
  $contra=$_POST["tcontra"];
  
  if(($usuario!="")&&($contra!=""))
  {
       $sql="SELECT * FROM usuario WHERE usuario='$usuario' AND contra='$contra'";
       $resultado=$clase->renglon($sql);
  }

 if($resultado["usuario"]!="")
	{
	    echo "Este usuario Existe";
	}
	else
	{
             echo "No existe ese usuario, intentalo nuevamente";
        }

Si los datos de usuario y password son correctos…

mostramos un mensaje que lo indique…

.. sino,  el formulario seguirá esperando por datos correctos.

Como ven ya hemos realizado una conexión muy simple con php y mysql,  en esta ocasión  no he validado el formulario con javascript ni lo he protegido de inyecciones sql pero eso ya lo veremos en próximos post.

Descargar ejemplo

A continuación mostraré como utilizar las otras dos funciones (  renglon() y renglones())

Related Posts Plugin for WordPress, Blogger...

publicidad

5 Comments

  1. hola Alberto, que bueno que seas asi. Yo soy algo novato, pero me esta interesando meterme con php, ahorita stoy haciendo un proyecto, donde ya hice el login con php y mysql y me funciona y todo, pero no se como podria yo bloquear las sig. paginas osea que al querer direccionar una pagina esta se redireccione al login por ejem si estoy en http://localhost/index » esta me redireccione al login automaticamente inpidiendo el acceso no permitido a las paginas. Ojala puedas ayudarme jeej saludos.

    1. Hola Leonardo, perdón por responder tan tarde, posible mente ya hayas solucionado tu problema, sin embargo te diré que para impedir que los usuarios visiten paginas a las que no están autorizados debes usar sesiones.

      Así cuando se loguean puedes establecer variables en la sesión y después en cualquier pagina puedes validar que esa sesión exista, de lo contrario se redirecciona al formulario de login, el código es más o menos así:

      if($_SESSION[‘autorizado’]!=1)
      header(«Location:index.php»);

      Lo que estoy diciendo ahí es que si la sesión en su variable autorizado es diferente de 1 lo redireccionaré al formulario de login.

      cuando el usuario inicia sesión con su cuenta debes decir mediante código que la sesión en su variable «autorizado» =1
      $_SESSION[‘autorizado’]=1;

      Espero haberte aclarado un poco el asunto, cualquier duda, estoy para ayudarte. Que estés bien.

  2. Hola me da gusto encontrar este sitio y sobretodo que te tomes la molestia de aclarar paso a paso, yo he empezado a usar PHP pero todavia me falla bastante y el problema que tengo es que tengo que hacer una tabla en PHP tomando datos de mysql pero no me sale bien. Fui con la maestra y me dijo «¡Como! esta facil» pèro no salio como ella decia y quedo de decirnos despues. El caso es que no quiero esperar mucho y si quisiera saber que estoy haciendo mal. Si pudieras darme una ayudadota te lo agradecere.

    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 25
    Server version: 5.5.8 MySQL Community Server (GPL)

    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

    mysql> use estudiantes
    Database changed
    mysql> show tables;
    +———————–+
    | Tables_in_estudiantes |
    +———————–+
    | grupos |
    +———————–+
    1 row in set (0.00 sec)

    mysql> describe grupos;
    +———–+————-+——+—–+———+——-+
    | Field | Type | Null | Key | Default | Extra |
    +———–+————-+——+—–+———+——-+
    | Matricula | int(1) | NO | MUL | NULL | |
    | Nombre | varchar(25) | NO | | NULL | |
    | Dir | varchar(25) | NO | | NULL | |
    | Grupo | char(1) | NO | | NULL | |
    | Promedio | int(3) | NO | | NULL | |
    | Edad | int(2) | NO | | NULL | |
    | Sexo | char(1) | NO | | NULL | |
    +———–+————-+——+—–+———+——-+
    7 rows in set (0.02 sec)

    mysql> select*from grupos;
    +———–+—————+———————+——-+———-+——+—
    —+
    | Matricula | Nombre | Dir | Grupo | Promedio | Edad | Se
    xo |
    +———–+—————+———————+——-+———-+——+—
    —+
    | 2 | Martin Porres | Blvd. Lopez Mateos | B | 9 | 20 | M
    |
    | 4 | Benito L¾pez | Rueda 23 | B | 10 | 19 | M
    |
    | 5 | Victor PÚrez | Carlos Carrillo 567 | B | 8 | 20 | M
    |
    +———–+—————+———————+——-+———-+——+—
    —+
    3 rows in set (0.00 sec)

    mysql>

    mi godigo PHP

    <?php
    $link = mysql_connect('localhost', 'root', '');
    if (!$link) {
    die('No se pudo conectar: ' . mysql_error());
    }
    echo 'Conectado exitosamente';
    // hacemos estudiantes la base de datos actual
    $db_selected = mysql_select_db('estudiantes', $link);
    if (!$db_selected) {
    die ('No se puede utilizar estudiantes: ‘ . mysql_error() .

    »);
    }
    echo ‘Conectado a estudiantes’;

    if( $result = mysql_query( «SELECT * FROM grupos WHERE

    Matricula=’2′», $link) )
    {
    echo «»;
    while ( $fila = mysql_fetch_array($result) )
    {
    echo »
    «.$fila[‘Matricula’].»
    «.$fila[‘Nombre’].»
    «.$fila[‘Dir’].»
    «.$fila[‘Grupo’].»
    «.$fila[‘Promedio’].»
    «.$fila[‘Edad’].»
    «.$fila[‘Sexo’].»

    «;
    }
    echo «»;
    }
    else
    {
    echo » . mysql_error() . »;
    }
    mysql_close($link);
    ?>

    Al parecer no estoy haciendo bien lo de la tabla pero la verdad estoy hecho bolas.

    Gracias

  3. Hola disculpa la tardanza me enferme, pero bueno continuamos afortunadamente: mi problema es que no hace la conexion de mysql a php por eso te envie los codigos para ver si podrias hacerlo y ver en que me equivoque.

    Gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada.