Comunidad de diseño web y desarrollo en internet online

Hacer un insert con una subquery en una sentencia preparada

Citar            
MensajeEscrito el 08 Jul 2020 05:10 pm
Hola a todos, a ver tengo un problema con una sentencia preparada que es un insert, pero que dos datos los obtengo con una subquery. No consigo hacerlo y no veo mucha informacion. Os pongo el código y he marcado con asteriscos donde no se lo que poner.

Código PHP :


$sqlDatosUsuario = "INSERT INTO ".TBL_DATOS_USUARIO." ( idDatosUsuario, idGenero, nombre, "
                           . "apellido_1, apellido_2, telefono)".
                            "VALUES".
                            "(SELECT idUsuario FROM ".TBL_USUARIO." where nick = :nick),
                            (SELECT idGenero FROM ".TBL_GENERO." WHERE genero = :genero),
                             :idDatosUsuario, :idGenero, :nombre, :apellido_1, :apellido_2, :telefono);";
                    
                        $stDatosUsuario = $con->prepare($sqlDatosUsuario);
                        $stDatosUsuario->bindValue(":idDatosUsuario",**************************); 
                        $stDatosUsuario->bindValue(":idGenero",    *****************************);                     
                        $stDatosUsuario->bindValue(":nick", $this->data["nick"], PDO::PARAM_STR);
                        $stDatosUsuario->bindValue(":genero", $this->data["genero"], PDO::PARAM_STR);
                        
                        $stDatosUsuario->bindValue(":nombre", $this->data["nombre"], PDO::PARAM_STR);
                        $stDatosUsuario->bindValue(":apellido_1", $this->data["apellido_1"], PDO::PARAM_STR);
                        $stDatosUsuario->bindValue(":apellido_2", $this->data["apellido_2"], PDO::PARAM_STR);
                        $stDatosUsuario->bindValue(":telefono", $this->data["telefono"], PDO::PARAM_STR);
                        
                        $testDatosUsuario = $stDatosUsuario->execute();        
                       



A ver si alguien ya ha pasado por esto y me dice, gracias

Por carlosvallsego

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Jul 2020 05:33 am
Los datos que estas usando para el query los estas sacando de $this->data que no se lo que es, supongo que un formulario que se ha enviado. idDatosUsuario e idGenero parecerian Ids preexistentes. En el caso de idDatosUsuario no tiene mucho sentido que exista antes del insert, lo deberia generar el mismo insert y deberia ser un interger AUTO_INCREMENT o similar. En cuanto al idGenero debe venir de una tabla de genero, y quizas deberias ponerlo en el formulario que llena el usuario con un desplegabley los valores que obtuviste de esa tabla, asi te vienen en el array $datos como todo el resto

Jorge

Por solisarg

BOFH

13640 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome

   Página 1 de 1

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.