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<?php
//recupera la ultima conexion del usuario al servidor
//para compararla con la fecha y hora local actual
$this->sql = "SELECT date_time,
TIMESTAMPDIFF(YEAR, date_time, '".$this->local_date_time."') as diff_year,
TIMESTAMPDIFF(MONTH, date_time, '".$this->local_date_time."') as diff_month,
TIMESTAMPDIFF(DAY, date_time, '".$this->local_date_time."') as diff_day,
TIMESTAMPDIFF(HOUR, date_time, '".$this->local_date_time."') as diff_hour,
TIMESTAMPDIFF(MINUTE, date_time, '".$this->local_date_time."') as diff_minute,
TIMESTAMPDIFF(SECOND, date_time, '".$this->local_date_time."') as diff_second
FROM activity_date_time
WHERE id_twitter=$id_twitter ORDER BY id_date_time DESC LIMIT 1";
//hasta aquí el código no da problemas, toda la consulta está bien
$this->result_conexion = $this->connect($this->sql);
//aquí da error
?>
Connect.php contiene lo siguiente, indico la línea donde me dice que está el error
Código PHP:
Ver original<?php
/*
CLASE PARA CONECTAR Y REALIZAR OPERACIONES EN LA BASE DE DATOS
*/
class Connect
{
private $IDConexion;
private $Escape;
private $IDQuery;
public function __construct()
{
//establezco los datos de autenticación para acceder a la base de datos
$conexion = mysqli_connect("localhost", "usuario" , "password" , "BD_name");
//establezco el conjunto de caracteres a nivel de servidor en tiempo de ejecucion
$this->IDQuery = $conexion;
return $this->IDQuery;
}
public function escape( $string_escapar )
{
//escapo caracteres para evitar sql injection
$string_escapar = trim( $string_escapar );
$this->Escape = $escape;
return $this->Escape;
}
public function connect ( $string_consulta )
{
//conecto a la base de datos
$this->IDConsulta = mysqli_query($this->IDQuery , $string_consulta) //linea 38 del código
return $this->IDConsulta;
}
public function go_out ()
{
}
}
?>
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.