Nueva pregunta

Pregunta:

Fecha: 18-02-2018 12:27:08 (En Español)

No entiendo: registro de usuarios con html, php y mysql[No resuelta]

He estado tratando de hacer un código para registro de usuarios con html, php y mysql, he visto varios tutoriales, todos los sigo paso por paso y ninguno me agrega ningun dato a la BD

ALGUIEN Q ME PUEDA AYUDAR PORFA
Etiquetas: HTML - MySQL - PHP - Pregunta Votos: 0 - Respuestas: 2 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 18-02-2018 13:54:29 si no colocas nada de codigo, mensajes de error que recibes o lo que sea, no vas a recibir ayuda precisa, deberias de colocar aqui el codigo con que realizas la conexion a la base de datos, en todo caso te dejo una secuencia simple de inserción en base de datos:

    //Conexion a la base de datos
    $db = new mysqli("localhost", "root", "", "pruebas");
    if ($db->connect_errno) {
        echo "Fallo al conectar a MySQL: (" . $db->connect_errno . ") " . $db->connect_error;
    }
    
    //Recibo los valores desde el formulario
    $valor1 = $_POST["valor1"];
    $valor2 = $_POST["valor2"];
    
    //Desactivo la ejecución automatica de querys
    $db->autocommit(false);
    
    //Inicio la prueba de ejecución
    try{
    
        //Simulo la inserción en la tabla
        $a = $db->query("INSERT INTO tabla (campo1,campo2) VALUES('$valor1','$valor2')");
    
        //Si falla la simulación, genero la excepción con el error
        if(!$a){
            throw new Exception("Error: ".json_encode(error_get_last()));
        }
        
        //Si la simulación no fallo, ejecuto la inserción
        $db->commit();
        //Retorno la respuesta positiva
        return "200";
    }catch(Exception $e){
        //Si fallo la simulación, deshago cualquier cambio en caso de haber varias querys
        $db->rollback();
        //Retorno el mersaje de error
        return $e->getMessage();
    }
    
      Votos: 3 - Link respuesta
     
  • Fecha: 18-02-2018 16:30:54 Hola Colegas, podría aportar que para usar transacciones debemos contar con una tabla que utilice un motor de almacenamiento con soporte de transacciones.

    * Tipicamente el motor para transacciones en MySQL es InnoDB (aunque hay otros).
    * Tipicamente el motor más utilizado por su velocidad de respuesta (y porque esta por defecto) es MyISAM (sin soporte de transacciones).

    En otras palabras, si tu tabla implementa MyISAM no pordás operar con transacciones.

    Esto ya es un extra (esa nota de color): a pesar de que no podemos utlizar transacciones en MyISAM, si es valido el concepto de ACID, se puede pensar siempre como la ejecución de transacciones de un solo paso, recordemos: ACID es un acrónimo de Atomicity (Atomicidad), Consistency (Consistencia), Isolation(Aislamiento ) y Durability (Durabilidad).

    Atomicidad: en una operación de un solo paso, el paso se ejecuta bien o no se ejecuta (no queda a medias), a esto se refiere la atomicidad, y aplica perfectamente a MyISAM en la ejecución, solo que siempre será de un solo paso.

    Consistencia: (Integridad). Es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de Integridad de la base de datos. La propiedad de consistencia sostiene que cualquier transacción llevará a la base de datos desde un estado válido a otro también válido. "La Integridad de la Base de Datos nos permite asegurar que los datos son exactos y consistentes, es decir que estén siempre intactos, sean siempre los esperados y que de ninguna manera cambian ni se deformen. De esta manera podemos garantizar que la información que se presenta al usuario será siempre la misma."

    Aislamiento: Esta propiedad asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información sean independientes y no generen ningún tipo de error. Esta propiedad define cómo y cuándo los cambios producidos por una operación se hacen visibles para las demás operaciones concurrentes. El aislamiento puede alcanzarse en distintos niveles, siendo el parámetro esencial a la hora de seleccionar SGBDs.

    Durabilidad: (Persistencia). Esta propiedad asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema y que de esta forma los datos sobrevivan de alguna manera.

    Nota: estas ultimas 3 definiciones "Consistencia, Aislamiento y Durabilidad" son by Wikipedia y valen perfectamente, la definición de Atomicidad me parece un poco mas rebuscada si no se aclara el punto de pensar la operación como de un solo paso.

    Saludos a todos y buen código!
      Votos: 3 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com