PHP - Error en una variable protected

 
Vista:
sin imagen de perfil
Val: 38
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error en una variable protected

Publicado por CARLOS (15 intervenciones) el 09/07/2020 19:55:20
Hola a todos, no se porque me da error en la declaración de la variable $conexion_db.
Agradezco que alguien me diga que estoy haciendo mal.
Saludos!

config.php
1
2
3
4
5
6
7
<?php
	define ('DB_HOST', 'localhost');
	define ('DB_USER', 'root');
	define ('DB_PASS', 'root');
	define ('DB_NAME', 'pruebas');
	define ('DB_CHAR', 'utf8');
?>

conexion.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
	require("config.php");
 
	class Conexion{
 
		protected $conexion_db;
 
		public function Conexion(){
			$this->$conexion_db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
			if($this->conexion_db->connect_errno){
				echo "Error de conexion: ".$this->conexion_db->connect_error;
				return;
			}
			$this->conexion_db->set_charset(DB_CHAR);
		}
 
	}
?>

El error que aparece es:
Undefined variable: conexion_db in C:\wamp\www\@PHP\curso_web\poo\conexion.php on line 9.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 38
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error en una variable protected

Publicado por CARLOS (15 intervenciones) el 10/07/2020 01:16:06
En realidad me di cuenta de que tenía que haber mandado también este código:

DevuelveProductos.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
	require "conexion.php";
 
	class DevuelveProductos extends Conexion{
 
		public function DevuelveProductos(){
 
			parent::__construct();		// Con esta línea ejecuto la función constructora
										// Conexion() de la clase padre, o sea la clase
										// Conexion.
 
		}
 
		public function get_productos(){
			$resultado = $this->conexion_db->query('SELECT * FROM productos');
			$productos = $resultado->fetch_all(MYSQLI_ASSOC);
			return $productos;
		}
 
	}
 
?>

index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
	require "DevuelveProductos.php";
 
	$productos = new DevuelveProductos;                   //////  <<< El error se produce acá
 
	$array_productos = $productos->get_productos();
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titulo</title>
</head>
 
<body>
	<?php
		foreach($array_productos as $elemento){
			echo $elemento['codigoarticulo']."<br>";
			echo $elemento['seccion']."<br>";
			echo $elemento['nombrearticulo']."<br>";
			echo "<br>";
		}
	?>
</body>
</html>

Porque si ejecutaba solo conexion.php, el error no aparecía.
El error se produce al instanciar DevuelveProductos.
Quizá esté mal escrita la función constructora de la clase DevuelveProductos.
.
Este es un ejercicio de aprendizaje y estoy trabado con este error.

Saludos cordiales!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error en una variable protected

Publicado por Mauro (1037 intervenciones) el 10/07/2020 23:49:12
¿Puedes publicar el mensaje de error que ves?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 38
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error en una variable protected

Publicado por CARLOS (15 intervenciones) el 11/07/2020 01:29:49
Hola Mauro, adjunto una captura del error.
Te cuento que ya me di cuenta de que le faltaban los () el la línea 4 del index.php, pero el error persiste.

Error-en-una-variable-protected
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error en una variable protected

Publicado por joel (1269 intervenciones) el 11/07/2020 11:22:06
Hola Carlos, que hay en la linea 9 del archivo conexion.php?? ahí es donde tienes el warning y el error!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error en una variable protected

Publicado por Kathyu (905 intervenciones) el 11/07/2020 11:34:35
Su archivo de conexión es este

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
	require("config.php");
 
	class Conexion{
 
		protected $conexion_db;
 
		public function Conexion(){
			$this->$conexion_db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
			if($this->conexion_db->connect_errno){
				echo "Error de conexion: ".$this->conexion_db->connect_error;
				return;
			}
			$this->conexion_db->set_charset(DB_CHAR);
		}
 
	}
?>

Lo único que he visto es que en unos casos usan mysqli_connect(HOST...) y otros solo mysqli(HOST...), eso depende del estilo de programación que se este usando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 38
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error en una variable protected

Publicado por CARLOS (15 intervenciones) el 12/07/2020 20:00:27
Hola chicos, encontré los errores!!

Publico esto para lo puedan aprovechar otros visitantes:
1º) Faltaban los () después de DevuelveProductos en la línea 6 de index.php.
2º) Sobraba el signo $ después de la flecha del $this, de la línea 11 de conexion.php.

Los códigos corregidos quedaron así:
conexion.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
 
	require("config.php");
 
	class Conexion{
		protected $conecta_db;
 
		public function __construct(){
			$this->conecta_db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
			if($this->conecta_db->connect_errno){
				echo "Error de conexion: ".$this->conecta_db->connect_error;
				return;
			}
			$this->conecta_db->set_charset(DB_CHAR);
 
			echo "EXITO! Dentro de la funcion constructora <br><br>";
		}
	}
?>

index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
 
	require "DevuelveProductos.php";
	$productos = new DevuelveProductos();
	$array_productos = $productos->get_productos();
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index_57</title>
</head>
 
<body>
	<?php
		foreach($array_productos as $elemento){
			echo "<table>";
			echo "<tr>";
			echo "<td>".$elemento['codigoarticulo']."</td>";
			echo "<td>".$elemento['seccion']."</td>";
			echo "<td>".$elemento['nombrearticulo']."</td>";
			echo "</tr>";
			echo "</table>";
			echo "<br><br>";
		}
	?>
</body>
</html>

Errores de principiante.
Muchas gracias por su tiempo!

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar