Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/03/2013, 20:59
Emesislol
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Solo ejecuta la primera consulta MySQL

Buenas! resulta que estaba con un pequeño proyecto de PHP en el que mando una serie de parámetros a un fichero php a través de un formulario y este usa esos parámetros para conectarse a la base de datos y hacer 2 cosas: crear tablas e insertar unos datos en una de las tablas.

El problema es el siguiente. Este es el código del fichero que procesa los datos:
Código PHP:
<?php
    
    
include('../lib/facade.php');
    include(
'../lib/twigData.php');
    
    
//Datos administrador del sitio
    
$userAdmin $_POST['userAdmin'];
    
$passAdmin $_POST['passAdmin'];
    
    
//Datos conexión hosting
    
$userDB $_POST['userDB'];
    
$passDB $_POST['passDB'];
    
$nameDB $_POST['nameDB'];
    
$serverName $_POST['serverName'];
    
    
$conexion conectar($serverName$userDB$passDB$nameDB);
    
    if(!
$conexion){
        echo 
$twig->render('install/error.html', array('errorMng' => 'Error al conectarse a la base de datos.'));
    } else {           
        
        
/**** CREAMOS LAS TABLAS EN LA BASE DE DATOS ****/
        
$ficheroTablas fopen("tablas.sql""r");
        
$lecturaFicheroTablas fread($ficheroTablasfilesize("tablas.sql"));
        
$resultCrearTablas crearTablas($conexion$lecturaFicheroTablas);
        
fclose($ficheroTablas);
        
        
/**** INSERTAMOS EL USUARIO ADMINISTRADOR EN LA TABLA ****/
        
$passAdminMd5 md5($passAdmin); //clave cifrada en md5             
        
$resultInsertAdmin insertarAdmin($conexion$userAdmin$passAdminMd5);
desconectar($conexion);
}
?>
Y este es el facade.php donde tengo las funciones que interactuan con la base de datos:
Código PHP:
<?php

/******************************************** FUNCIONES INSTALACIÓN ********************************************/
    
function conectar($serverName$userDB$passDB$nameDB){    
        
$mysql = new mysqli($serverName$userDB$passDB$nameDB);    
        if (
$mysql->connect_errno) {
            return 
false;
        } else {
            return 
$mysql;
        }    
    }
    
    
/**** cerrar conexion con la base de datos ****/
    
function desconectar($conexion){
        
$conexion->close();
    }
    
    
/**** crear tablas en la base de datos ****/
    
function crearTablas($mysql$lecturaFicheroTablas){     
        
$resultCrearTablas $mysql->multi_query($lecturaFicheroTablas);
        if(!
$resultCrearTablas){
            return 
false;
        }
        return 
true;
    }
    
    
/**** crear usuario administrador ****/
    
function insertarAdmin($mysql$userAdmin$passAdminMd5){
        
$consInsertAdmin "INSERT INTO administrador (nombreAdmin, passAdmin, ultimaConexion) VALUES ('$userAdmin','$passAdminMd5', 'null');";
        
$resultInsert $mysql->query($consInsertAdmin);
        if(!
$resultInsert){
            return 
false;
        }
        return 
true;
    }

?>
El problema que tengo es que solo me ejecuta bien la primera consulta, la de crear las tablas pero la de insertar el usuario no. Probé a poner primero la de insertar el usuario y me la ejecutó bien, pero no me ejecutó la siguiente.
Es como si al ejecutar la primera consulta perdiera el valor de la variable $conexion y ya no sirviera para realizar mas consultas...

¿Alguien me podría ayudar a resolver el problema? :S

Gracias!