Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/02/2014, 13:57
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años, 3 meses
Puntos: 84
Conexión a BD no funciona

Estoy trabajando sobre una opción de una web app que sirve para limitar el uso de la web si el usuario se ha conectado y realizado preguntas en la última hora.

He creado un método llamado compareDatesHours dentro de la clase UsersDateTime_SetGetDrop();

Llegado a un punto del método la conexión a la BD da error

Cita:
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /var/www/vhosts/miweb.com/httpdocs/models/Connect.php on line 38 Warning: mysqli_error() expects parameter 1 to be mysqli, null given in /var/www/vhosts/miweb.com/httpdocs/models/Connect.php on line 39
Esta es la parte del método donde me da error, lo indico en el código

Código PHP:
Ver original
  1. <?php
  2.         //recupera la ultima conexion del usuario al servidor
  3.         //para compararla con la fecha y hora local actual
  4.        
  5.         $this->sql              =   "SELECT date_time,
  6.                                         TIMESTAMPDIFF(YEAR,     date_time, '".$this->local_date_time."') as diff_year,
  7.                                         TIMESTAMPDIFF(MONTH,    date_time, '".$this->local_date_time."') as diff_month,
  8.                                         TIMESTAMPDIFF(DAY,      date_time, '".$this->local_date_time."') as diff_day,
  9.                                         TIMESTAMPDIFF(HOUR,     date_time, '".$this->local_date_time."') as diff_hour,
  10.                                         TIMESTAMPDIFF(MINUTE,   date_time, '".$this->local_date_time."') as diff_minute,
  11.                                         TIMESTAMPDIFF(SECOND,   date_time, '".$this->local_date_time."') as diff_second
  12.                                    FROM activity_date_time
  13.                                    WHERE id_twitter=$id_twitter ORDER BY id_date_time DESC LIMIT 1";
  14.     //hasta aquí el código no da problemas, toda la consulta está bien 
  15.         $this->result_conexion  =   $this->connect($this->sql);
  16.         //aquí da error
  17.         $this->result_conexion  =   mysqli_fetch_array($this->result_conexion);
  18. ?>

Connect.php contiene lo siguiente, indico la línea donde me dice que está el error

Código PHP:
Ver original
  1. <?php
  2. /*
  3. CLASE PARA CONECTAR Y REALIZAR OPERACIONES EN LA BASE DE DATOS
  4. */
  5. class Connect
  6. {
  7.     private $IDConexion;
  8.     private $Escape;
  9.     private $IDQuery;
  10.    
  11.     public function __construct()
  12.     {
  13.         //establezco los datos de autenticación para acceder a la base de datos
  14.         $conexion = mysqli_connect("localhost", "usuario" , "password" , "BD_name");
  15.        
  16.         //establezco el conjunto de caracteres a nivel de servidor en tiempo de ejecucion
  17.         mysqli_set_charset( $conexion, "utf8" );
  18.        
  19.         $this->IDQuery = $conexion;
  20.        
  21.         return $this->IDQuery;
  22.     }
  23.    
  24.     public function escape( $string_escapar )
  25.     {
  26.         //escapo caracteres para evitar sql injection
  27.         $string_escapar = trim( $string_escapar );
  28.         $escape = mysqli_real_escape_string( $this->IDQuery, $string_escapar );
  29.        
  30.          $this->Escape = $escape;
  31.        
  32.         return $this->Escape;
  33.     }
  34.    
  35.     public function connect ( $string_consulta )
  36.     {
  37.         //conecto a la base de datos
  38.         $this->IDConsulta = mysqli_query($this->IDQuery , $string_consulta) //linea 38 del código
  39.         OR die (mysqli_error($this->IDQuery)); //linea 39 del código
  40.        
  41.         return $this->IDConsulta;
  42.     }
  43.     public function go_out ()
  44.     {
  45.         mysqli_close($this->IDQuery);
  46.     }
  47. }
  48. ?>

No entiendo qué está pasando, la clase Connect funciona con todo lo demás excepto aquí, lo sé porque previamente he creado otro código que comprueba si el usuario existe para no registrar sus datos por duplicado y funciona perfectamente :S hace la comprobación.

¿Alguien puede ayudarme con este problema?

He revisado los datos de conexión y están bien. Si es necesario mostrar más código lo muestro, no hay problema por eso.
__________________
Ayúdame a hacerlo por mi mismo.