none
llave foránea null RRS feed

  • Pregunta

  • A ver si me podéis ayudar con lo siguiente: Quiero insertar el id de una tabla a otra, con un INSERT INTO y una subconsulta SELECT, la cual hace referencia a esa id deseado mediante una llava foránea. Mi consulta SQL captura tal id, lo graba en su tabla correspondiente pero no se refleja en la tabla que hace referencia a ese id. Sin embargo, cuando hago otra consulta SQL y hago referencia a ese id que antes mostraba NULL, entonces se muestra en la tabla que tiene la llave foránea. Con el código que os dejo a ver si me puedo explicar mejor

    if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    
       $nombre_audio=($_POST['nombre_audio']);
       $cargarAudio = $_FILES['audio']['tmp_name'];
       $audio = fopen($cargarAudio,'rb');
       $nombre_expositor = ($_POST['nombre_expositor']);
       $nombre_serie = ($_POST['nombre_serie']);
    // $fecha_bd=date("Y-m-d h:i:sa");
    
    if (empty($nombre_audio) && empty($audio) && empty($nombre_expositor)) {
        unset($_POST);
        echo "<h3>Todos los campos son obligatorios</h3>";
    
    }else{ 
    
        $sql2 = "INSERT IGNORE  INTO expositor(nombre_expositor) VALUES ('$nombre_expositor')";
        $sql3 = "INSERT IGNORE  INTO serie(nombre_serie) VALUES ('$nombre_serie')";
    
        $sql = "INSERT   INTO audio (nombre_audio, audio, fk_expositor, fk_serie) 
                VALUES ('$nombre_audio', '$audio', (SELECT id_expositor FROM expositor WHERE nombre_expositor = '$nombre_expositor'), (SELECT id_serie FROM serie WHERE nombre_serie = '$nombre_serie'))";
    
    
        if ($conexion->query($sql) === TRUE &&
             $conexion->query($sql2) === TRUE
             && $conexion->query($sql3) === TRUE) {
            echo "New record created successfully";
    
    
    
        } else {
            echo "Error: " . $sql . "<br>" . $conexion->error;
            echo "<h3>Todos los campo son obligatorios</h3>";
        }
    
    
    }
    viernes, 13 de diciembre de 2019 0:43

Respuestas

  • La sintaxis "INSERT IGNORE" no se reconoce en SQL Server.


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    viernes, 13 de diciembre de 2019 7:46
  • Efectivamente, INSERT IGNORE pertenece a MySQL, igualmente tu duda no me queda clara, si lo pudieras explicar mejor.

    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    viernes, 13 de diciembre de 2019 8:14

Todas las respuestas

  • La sintaxis "INSERT IGNORE" no se reconoce en SQL Server.


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    viernes, 13 de diciembre de 2019 7:46
  • Efectivamente, INSERT IGNORE pertenece a MySQL, igualmente tu duda no me queda clara, si lo pudieras explicar mejor.

    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    viernes, 13 de diciembre de 2019 8:14