1
(POO) Programación Orientada a Objetos / Poblema connexión mysqli
« en: 14 de Junio de 2014, 01:27:20 am »
Buenas noches, me he iniciado en el mundo de la programación orientada a objetos y probando la metodología de conexión a base de datos mysqli i las classes, me he encontrado con el siguiente error:
tengo tres ficheros:
config.php
<?
define("db_host", "localhost");
define("db_name", "universitario");
define("db_user", "root");
define("db_pass", "xxxxx");
define("db_charset","utf8");
?>
mydbclass.php
<?
require_once 'config.php';
class dataBase{
private $conn;
//obrim una connexio a la base de dades
public static function __contruct()
{
$this->conn = new mysqli(db_host,db_user,db_pass,db_name);
if($this->conn->connect_errno){
echo "Error mysql: (".$this->conn->connect_errno.")".$this->conn->connect_error;
exit();
}
//poo --> set_charset | estil per procediment mysqli_set_charset : UTF-8
$this->conn->set_charset("db_charset");
echo 'Éxito... '.$conn->host_info;
}
public static function get_universitarios()
{
$resultado = $this->conn->query("select * from universitario;"); <---- line 25 donde me da el error
return $resultado;
}
//cerramos connexion a la base de datos
public function closedb()
{
$this->conn->close();
}
//destructor per tancar connexio a la base de dades
public function __destruct()
{
$this->closedb();
}
}
?>
y el último fichero:
index.php
<?
include('mydbclass.php');
echo "Estas en la pagina de pruevas de connexion a la base de datos";
$prueva = new dataBase();
$uni = $prueva->get_universitarios();
foreach($uni as $row)
{
echo "<p>".$row['nombre']."</p>";
}
?>
El error que me muestra es el siguiente:
Estas en la pagina de pruevas de connexion a la base de datos
Fatal error: Using $this when not in object context in C:\AppServ\www\botiga\mydbclass.php on line 25
No se que estoy haciendo mal, si aún no tengo los conocimientos claros, ya que yo programo php en estilo por procedimieno.
Gracias de antemano.
tengo tres ficheros:
config.php
<?
define("db_host", "localhost");
define("db_name", "universitario");
define("db_user", "root");
define("db_pass", "xxxxx");
define("db_charset","utf8");
?>
mydbclass.php
<?
require_once 'config.php';
class dataBase{
private $conn;
//obrim una connexio a la base de dades
public static function __contruct()
{
$this->conn = new mysqli(db_host,db_user,db_pass,db_name);
if($this->conn->connect_errno){
echo "Error mysql: (".$this->conn->connect_errno.")".$this->conn->connect_error;
exit();
}
//poo --> set_charset | estil per procediment mysqli_set_charset : UTF-8
$this->conn->set_charset("db_charset");
echo 'Éxito... '.$conn->host_info;
}
public static function get_universitarios()
{
$resultado = $this->conn->query("select * from universitario;"); <---- line 25 donde me da el error
return $resultado;
}
//cerramos connexion a la base de datos
public function closedb()
{
$this->conn->close();
}
//destructor per tancar connexio a la base de dades
public function __destruct()
{
$this->closedb();
}
}
?>
y el último fichero:
index.php
<?
include('mydbclass.php');
echo "Estas en la pagina de pruevas de connexion a la base de datos";
$prueva = new dataBase();
$uni = $prueva->get_universitarios();
foreach($uni as $row)
{
echo "<p>".$row['nombre']."</p>";
}
?>
El error que me muestra es el siguiente:
Estas en la pagina de pruevas de connexion a la base de datos
Fatal error: Using $this when not in object context in C:\AppServ\www\botiga\mydbclass.php on line 25
No se que estoy haciendo mal, si aún no tengo los conocimientos claros, ya que yo programo php en estilo por procedimieno.
Gracias de antemano.