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.-