Posts Tagged ‘PHP’

Articles

Uso de mysqli en PHP

In PHP on 13/12/2011 por Esteban Olate Etiquetado: , ,

Cuando se construye una web utilizando PHP y MySQL a menudo suele ocuparse la librería mysql, cuando existe mysqli, la extensión mejorada MySQL que posee PHP. A continuación un ejemplo de cómo implementar la clase mysqli en PHP.

El primer paso es crear la conexión con la base de datos, para esto necesitaremos conocer los datos de nuestro servidor (servidor, usuario, contraseña, nombre de la base de datos):

conexion.php:

<?php
    //Función que nos retornara una conexión con mysqli
    function crearConexion(){
        //Datos para la conexión con el servidor
        $servidor   = «localhost»;
        $nombreBD   = «prueba»;
        $usuario    = «root»;
        $contrasena = «»;
        //Creando la conexión, nuevo objeto mysqli
        $conexion = new mysqli($servidor,$usuario,$contrasena,$nombreBD);
        //Si sucede algún error la función muere e imprimir el error
        if($conexion->connect_error){
            die(«Error en la conexion : «.$conexion->connect_errno.
                                      «-«.$conexion->connect_error);
        }
        //Si nada sucede retornamos la conexión
        return $conexion;
    }
?>

 

El siguiente paso es ocupar este objeto y realizar una consulta, a continuación mostrare como ejecutar una consulta de selección y una consulta de inserción, favor tomar en cuenta la siguiente estructura de tabla:

Estructura de tabla:

Campo Tipo
idUsuario int
nombre varchar(50)

 

consultaInsert.php:

<?php
    //Incluimos el archivo de conexión
    include («conexion»);
    function consultaInsert($idUsuario,$nombre){
        //Comenzamos con un ‘try’, por si algo falla(BD, conexión, etc)
        try{
            //Abrimos una conexión con el servidor
            $conexion = crearConexion();
            //Declaramos nuestra consulta
            $sql = «INSERT INTO usuario VALUES (?,?)»;
            //Preparamos la consulta
            $sentencia = $conexion->prepare($sql);
            /* Le damos los parámetros (símbolos ‘?’),
             * pueden ser de tipo ‘i’ = integer
             *                    ‘d’ = double
             *                    ‘s’ = string
             *                    ‘b’ = BLOB
             */
            $sentencia->bind_param(«is»,$idUsuario,$nombre);
            //Ejecutamos la consulta, si resulta exitosa el método execute()
            //retornará true
            if($sentencia->execute()){
                //Cerramos la conexión y la sentencia
                $conexion->close();
                $sentencia->close();
                //Retornamos true, consulta satisfactoria
                return true;
            }
            //Sino surgió algún error y retornamos una cadena de error.
            else{
                $conexion->close();
                $sentencia->close();
                return «Error en la insercion.»;
            }
            //Si surge alguna excepción la capturamos e imprimimos,
            //retornamos false
        }catch(Exception $e){
            echo $e;
            $conexion->close();
            $sentencia->close();
            return false;
        }
    }
?>

 

consultaSelect.php:

<?php
    //Incluimos el archivo de conexión
    include («conexion»);
    function consultaSelect($idUsuario){
        try{
            $conexion = crearConexion();
            $sql = «SELECT nombre FROM usuario WHERE idUsuario = ?»;
            $sentencia = $conexion->prepare($sql);
            $sentencia->bind_param(«i»,$idUsuario);
            $sentencia->execute();
            /* A diferencia de lo anterior ahora con el método bind_result(),
             * es necesario declarar tantas varibles como datos que se piden
             * para este ejemplo es solo uno, obtenemos el dato que nos retorna
             * la consulta, si viene más de uno será necesario recorrer la
             * $sentencia en un ciclo hasta que el método feth() retorne false.
             */
            $sentencia->bind_result($nombre);
            //Preguntamos si retorno algo, método feth()
            if($sentencia->fetch()){
                $conexion->close();
                $sentencia->close();
                //Retornamos ese algo, referenciando la variable de bind_result()
                return $nombre;
            }else{
                $conexion->close();
                $sentencia->close();
                return «No encontrado»;
            }
        }catch(Exception $e){
            echo $e;
            $conexion->close();
            $sentencia->close();
            return false;
        }
    }
?>

 

Para ejecutar las funciones bastaría con incluir los archivos PHP (consultaInsert.php o consultaSelect.php) y llamar a las funciones respectivamente, los métodos y atributos de mysqli son muy extensos aquí solo he visto los más básicos para consultas sencillas, espero haber explicado bien su funcionamiento.


Esteban Olate

Articles

Hola mundo AJAX (usando metodos POST y GET)

In JavaScript on 05/12/2011 por Esteban Olate Etiquetado: , ,

Anteriormente les mostraba cómo crear un objeto de AJAX válido para diferentes navegadores. Ahora veremos la implementación con dos ejemplos básicos. Para realizar esto debemos contar con los siguientes tres archivos.

scriptAJAX.js:

function crearAjax(){
   var objetoAjax=false;
   if(navigator.appName=="Microsoft Internet Explorer")
     objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
   else
     objetoAjax = new XMLHttpRequest();
   return(objetoAjax);
}
function llamadaAJAX(metodo){
  //Creamos nuestro objeto
  var ajax=crearAjax();
  //Preguntamos si es válido
  if(ajax){
    //Preguntamos si el método es POST
    if(metodo == "post"){
      //Llamada al archivo mediante POST
      ajax.open("POST","archivo.php");
      //Se cambian las cabeceras de nuestro objeto AJAX para poder enviar datos
      ajax.setRequestHeader("Content-Type",
                            "application/x-www-form-urlencoded");
      /* Enviamos datos, si se quiere agregar más se debe colocar el símbolo ‘&’
        al comienzo de cada nuevo dato */
      ajax.send("valor='post'");
    }
    //Preguntamos si el método es GET
    if(metodo == "get"){
      /*  Llamada al archivo mediante GET, en esta ocasión los datos son
          enviados atraves de la URL, por lo que ya no es necesario cambiar
          cabeceras ni enviar nada en el método ‘send()’ */
      ajax.open("GET","archivo.php?valor=get");
      ajax.send(null);
    }
    /* Con esta función controlamos los estados de nuestro objeto AJAX,
       pueden ser estados 1,2,3,4,200,etc..  */
    ajax.onreadystatechange = function(){
      //Preguntamos si nuestro objeto se encuentra en el estado 4 (Cargado)
      if(ajax.readyState==4){
        // Dejamos la respuesta en una variable, de tipo nodo texto (DOM)
        var respuesta = document.createTextNode(ajax.responseText);
        //Obtenemos una referencia al div respuesta
        var div = document.getElementById("resultado");
        //Agregamos el nodo de texto al div
        div.appendChild(respuesta);
      }
    }
  }
}

index.html:

<html>
  <head>
    <title>Hola mundo AJAX!</title>
    <!– Incorporamos el script a nuestra página –>
    <script type="text/javascript" language="javascript" src="scriptAJAX.js"></script>
  </head>
  <body>
    <input type="button" value="Llamada GET" onclick="llamadaAjax('get');" />
    <br />
    <input type="button" value="LLamada POST" onclick="llamadaAjax('post');" />
    <br />
    <div id="resultado" name="resultado"></div>
  </body>
</html>

archivo.php:

<?php
  // Preguntamos si llego una variable llamada ‘valor’ mediante POST
  if(isset($_POST["valor"])){
    // Enviamos mensaje para POST
    echo "Hola mundo! por POST";
  }
  // Preguntamos si llego una variable llamada ‘valor’ mediante GET
  if(isset($_GET["valor"])){
    // Enviamos mensaje GET
    echo "Hola mundo! por GET";
  }
?>

Espero haya quedado claro cómo utilizar los métodos POST y GET con AJAX.


Esteban Olate