Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/02/2009, 07:16
baquerocarolina
 
Fecha de Ingreso: diciembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 0
No me funcionan las variables globales :(

Hola,
estoy trabajando con un php compuesto a su vez por otros dos.
El primer php que incluyo contiene funciones generales. variables de configuración, su creación y asignación de valores. Se llama config.php.

Como necesito que el segundo php varíe según la opción que ha elegido el usuario, lo que hago es incluírlo dinámicamente. Este realiza diversas actividades, interacción con el usuario y procesamiento de los datos que este ingresa. (Supongamos segundo.php, ya que no interesa el nombre).

El problema que tengo es el siguiente:
En config.php tengo declarada una variable $conexion y le asigno una conexión mysql, y también una función que intenta utilizarla.

Código:
/** config.php **/

$con_basica=mysql_connect(DB_HOST,DB_LOGIN,DB_PASSWORD);
mysql_select_db(DB_NAME);

/** más cosas en el medio... */

function usar(){
global $conexion;
$query ="select * from mitabla";
mysql_query($query, $conexion);
...etc
}
Dentro de segundo.php utilizo una función usar() del config.php. En ese punto la función no puede acceder a la conexión, por más que esté el global.
En cambio si antes de hacer la conexión, utilizo la sentencia global $conexion;
si puede accederla...
Es decir:
Código:
/** config.php **/
global $con_basica;
$con_basica=mysql_connect(DB_HOST,DB_LOGIN,DB_PASSWORD);
mysql_select_db(DB_NAME);

/** más cosas en el medio... */

function usar(){
global $conexion;
$query ="select * from mitabla";
mysql_query($query, $conexion);
...etc
}
¿Alguien me puede explicar porqué este comportamiento y si es correcto usarlo así?
Desde ya muchas gracias,

Carolina.-