Cita:
Iniciado por dashtrash No es un problema con mysqli.Sino con cómo usas clases.Si lo que esperas es que "una variable esté definida en todos los archivos donde incluyes la clase donde la usas", es que estás programando orientado a "scripts".
Lo que necesitas es :
1) Hacer que la conexión sea una variable miembro de la clase.
2) Un método que devuelva dicha variable miembro.
¿Sería optimo utilizar una clase así?
Código PHP:
class MySQLiData {
public function __construct()
{
$this->MySQLi_SERVER = 'localhost';
$this->MySQLi_USER = 'root';
$this->MySQLi_PASSWORD = '';
$this->MySQLi_DATABASE = 'database';
$this->MySQLi = mysqli_connect($this->MySQLi_SERVER, $this->MySQLi_USER, $this->MySQLi_PASSWORD, $this->MySQLi_DATABASE);
if(!$this->MySQLi)
{
die('MySQL Connection Database Error nº: ' . mysqli_connect_errno());
}
}
public function getInstance()
{
$this->Instance = $this->MySQLi;
return $this->Instance;
}
public function Query($sql)
{
$this->Query = mysqli_query($this->MySQLi, $sql);
if(!$this->Query)
{
echo 'No se ha podido realizar la consulta';
}
else
{
return $this->Query;
}
}
public function FetchAssoc($sql, $field)
{
$this->Get = mysqli_fetch_assoc(mysqli_query($this->MySQLi, $sql));
if(!$this->Get)
{
echo 'No se ha podido realizar la consulta';
}
else
{
echo $this->Get[$field];
}
}
public function NumRows($sql)
{
$this->NumRows = mysqli_num_rows(mysqli_query($this->MySQLi, $sql));
echo $this->NumRows;
}
}
$MySQLi = new MySQLiData();