Variable global

  • Autor Autor Daniel Muñoz
  • Fecha de inicio Fecha de inicio
Daniel Muñoz

Daniel Muñoz

1
Pi
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Hola betas, se que esta es una pregunta tonta, pero no encuentro la forma o la manera de hacer una variable global.

Les explico.

Tengo en un archivo (base.php) una funcion para conectarme a la base de datos

PHP:
<?php
function conectar () {
  $servidor = "localhost";
  $usuario = "root";
  $clave = "daniel";
  $base = "ejemplo";
  $bd = mysqli_connect($servidor, $usuario, $clave, $base);
  if (mysqli_connect_errno() ) {
    echo 'Error: ' . mysqli_connect_error();
  }
}

En mi caso necesitaria usar la variable "$db" en otro archivo, expecificamente dentro de esta funcion.

PHP:
function registrar() {
    $registrar = mysqli_query($bd, "INSERT INTO usuarios (id,nombre,apellido,cedula) VALUES ('"."' , '".$this->nombre."' , '".$this->apellido."' , '".$this->cedula."')");    
    echo 'Registrado bien';
    echo '<a href="index.php" />';
    
  }

¿Como lo hago?

Ya ley la referencia de PHP pero de verdd no logro comprenderla PHP: Ãmbito de las variables - Manual
 
PHP:
function registrar() {
global $db;

Así?
 
No funciona. =/ otra idea?

Recién veo que usas una función para conectar, debería quedarte así las funciones e implementación:

PHP:
<?php
function conectar () {
  $servidor = "localhost";
  $usuario = "root";
  $clave = "daniel";
  $base = "ejemplo";
  $bd = mysqli_connect($servidor, $usuario, $clave, $base);
  if (mysqli_connect_errno() ) {
    echo 'Error: ' . mysqli_connect_error();
  }
return $bd;
}
function registrar() {
conectar();
    $registrar = mysqli_query($bd, "INSERT INTO usuarios (id,nombre,apellido,cedula) VALUES ('"."' , '".$this->nombre."' , '".$this->apellido."' , '".$this->cedula."')");    
    echo 'Registrado bien';
    echo '<a href="index.php" />';
    
} 
?>
 
No funciona. =/ otra idea?

PHP:
$bd = "";
function conectar () {
  global $bd;
  $servidor = "localhost";
  $usuario = "root";
  $clave = "daniel";
  $base = "ejemplo";
  $bd = mysqli_connect($servidor, $usuario, $clave, $base);
  if (mysqli_connect_errno() ) {
    echo 'Error: ' . mysqli_connect_error();
  }
}
PHP:
function registrar() {
    global $bd;
    $registrar = mysqli_query($bd, "INSERT INTO usuarios (id,nombre,apellido,cedula) VALUES ('"."' , '".$this->nombre."' , '".$this->apellido."' , '".$this->cedula."')");    
    echo 'Registrado bien';
    echo '<a href="index.php" />';
    
  }

Te recomiendo no usar una funcion de conectar... usa un file con el code
PHP:
  $servidor = "localhost";
  $usuario = "root";
  $clave = "daniel";
  $base = "ejemplo";
  $bd = mysqli_connect($servidor, $usuario, $clave, $base);
  if (mysqli_connect_errno() ) {
    echo 'Error: ' . mysqli_connect_error();
  }
y luego lo llamas con require o include
 
No mi hermano, asi tampoco funciona.

- - - Actualizado - - -
[MENTION=9679]cicklow[/MENTION] ven a mi rescate por favor :3
 
mira mas arriba te puse como solucionarlo :fatigue:

Es que se actualizo y no vi =)

Ya hice lo que me colocaste, gracias de verdad.

Siempre tu llegando al rescate, por cierto tienes un mp.
 
Podias usar $_POST 😛 o $_GET o $_SERVER o $_REQUEST

PHP:
$_SERVER['algo'] = 'soy global';
 
Como dijo cicklow, no hagas una función para conectarse, me parece algo demás por eso me confundí la primera vez. :drunk:

Podias usar $_POST 😛 o $_GET o $_SERVER o $_REQUEST

PHP:
$_SERVER['algo'] = 'soy global';

No zcriptz, no.
 
Efectivamente ya te dieron la respuesta, como lo mencionas, nunca he investigado si existen o se pueden emplear variables globales a nivel de archivos, solo dentro del mismo, lo ideal es lo que te dijo cicklow.

Saludos.
 
Atrás
Arriba