Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/11/2013, 00:57
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Problema al intentar guardar datos

Intentando resolver esto, probé realizando una nueva conexión a la BD en la función que invoca al PA que guarda los datos y de esa forma sí funciona, aquí está el código:

Código PHP:
Ver original
  1. <?php
  2. function guardarForm($conexion, $datos) {
  3.     //Conexión a la base de datos
  4.     $servidor = "localhost"; //Nombre del servidor
  5.     $usuario = "root"; //Nombre de usuario en tu servidor
  6.     $password = "phpdeveloper"; //Contraseña del usuario
  7.     $base = "bd_formulario"; //Nombre de la Base de Datos
  8.  
  9.     //Se realiza la conexión
  10.     $conexion2 = mysqli_connect($servidor, $usuario, $password) or die ("Error al conectarse al servidor");
  11.  
  12.     //Si se logra realizar la conexión a la Base de Datos
  13.     if ($conexion2)
  14.         //Se selecciona la base de datos con la que se trabajará
  15.         mysqli_select_db($conexion2, $base) or die ("Error al conectarse a la base de datos");
  16.        
  17.     return mysqli_query($conexion2, sprintf("CALL USP_saveForm('%s', '%s', '%s', '%s', '%s', '%s', %d, %d)",
  18.             $datos["codigo"],
  19.             $datos["nombre"],
  20.             $datos["apellidos"],
  21.             $datos["email"],
  22.             $datos["domicilio"],
  23.             $datos["fechanac"],
  24.             $datos["pais"],
  25.             $datos["ciudad"]
  26.         ));
  27. }
  28. ?>

Pareciera que el problema es con la variable de conexión, sin embargo, como podrán apreciar en los bloques de código que detallé antes, las otras funciones reciben la misma variable de conexión y las consultas con los PA se realizan de forma exitosa, para comprobarlo, imprimí los resultados de cada consulta y se mostraron los datos que pedí.

En el código del archivo procesar.php que detallo al inicio de este tema, envío a la función guardarForm() el archivo de conexión y el array con los datos, imprimí los datos dentro de la función, antes del llamado al PA y se mostraron todos, incluso probé con la siguiente línea para saber si el archivo de conexión llegaba bien:

Código PHP:
Ver original
  1. <?php
  2. echo $conexion ? "Bien" : "Mal";
  3. ?>

La línea de código anterior siempre imprime "Bien", mientras que cuando imprimo la variable de conexión con la función var_dump(), el resultado es "object(mysqli)#2 (0) { }", imagino que es porque no contiene valores, lo mismo se imprime si coloco esa línea de código en el mismo archivo de conexión.

¿Alguien tiene idea de qué pueda estar sucediendo?