Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/06/2018, 10:46
Avatar de KATHYU
KATHYU
 
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Dudas con PHP y POO !!!

Que mal, quede peor

Si pongo
Código PHP:
Ver original
  1. $this->conexion = mysqli_connect(DB_HOST,DB_USsaER,DB_PASS,DB_DATABASE);
  2.             mysqli_set_charset($this->conexion, 'utf8');

Me sale: "Fatal error: Using $this when not in object context" puesto que tengo la funcion conectar como privada y accedo a ella con la funsion publica conexion (se supone que es mas seguro asi)
-----------------------------EDITO-------------------------------------

Cambie la lógica según tuadmin recomendo y he logrado abrir, mostrar los mensajes del servidor (cosa que es solo de prueba) y cerrar la conexión con éxito, segun parece.

Al final el archivo database.php quedo asi:
Código PHP:
Ver original
  1. <?php
  2.     // error_reporting(0);
  3.     require_once(DIR_ROOT.SLASH.'loader.php');
  4.  
  5.     class DBM{
  6.         private $conexion;
  7.  
  8.         public function conexion()
  9.         {
  10.             return self::conectar();
  11.         }
  12.  
  13.         private function conectar(){
  14.             $this->conexion = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_DATABASE);
  15.             mysqli_set_charset($this->conexion, 'utf8');
  16.  
  17.             if (!$this->conexion){
  18.                 $response = '<b>Error al conectar al Servidor !!!</b> '.mysqli_connect_error();
  19.                 return $response;
  20.             }
  21.             else{
  22.                     // var_dump($this->conexion);
  23.                     // $response .= $this->conexion->host_info . "<br>";
  24.                     // $response .= 'Conectado al Servidor: <b>'.DB_HOST.'</b><br>';
  25.                     // $response .= 'Base de Datos: <b>'.DB_DATABASE.'</b><br>';
  26.  
  27.                     // $response .= ('Conjunto de caracteres de la Base de Datos es: <b>'.$this->conexion->character_set_name().'</b><br>');
  28.                     // return $response;
  29.             }
  30.         }
  31.  
  32.         public function desconectar(){
  33.             // echo '<hr>';
  34.             // var_dump($this->conexion);
  35.             // echo '<hr>';
  36.             if (isset($this->conexion)) {
  37.                 $cerrar = mysqli_close($this->conexion); //Linea 44
  38.                 unset($this->conexion);
  39.                 if ($cerrar) { // Linea 46
  40.                     $response = '<hr>Conexion a la Base de Datos Cerrada !!!';
  41.                     return $response;
  42.                 }
  43.                 else{
  44.                     $response = '<hr>La Conexion a la Base de Datos sigue Abierta !!!';
  45.                     return $response;
  46.                 }
  47.             }
  48.             else{
  49.                 $response = 'Conexion no esta definida';
  50.                 return $response;
  51.             }
  52.         }
  53.     }
  54.  
  55.     $dbm = new DBM();
  56. ?>


Y en el index, ya no lo llamo con :: si no con $dbm->function_name();

Con lo del curso, es uno de los mas actalizados que he encontrado.
Con lo del SELECT, es como si dijera las querys de consulta a la DB.
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.

Última edición por KATHYU; 15/06/2018 a las 11:11