Me está pasando algo raro, supongo que será por desconocimiento de como funciona, pero a ver si me podéis ayudar.
Tengo un trozo de código de un cms el cual e personalizado, y he llamado a un script php que está fuera de la carpeta del cms, es decir, en mitad del cms he añadido esto:
Código PHP:
// Codigo del CMS
//.
//.
//Mi codigo
include_once '/var/www/vhosts/misscripts/v1/Manejador.php';
$maneja = new ManejadorNotificaciones;
$maneja->mensaje_privado();
//Fin de mi Codigo
//.
//.Codigo del CMS
Código PHP:
$conexBD = mysql_connect('localhost', 'xxxxx', 'xxxxx');
if (!$conexBD) {
die('No se pudo conectar a la BD: ' . mysql_error());
}
//$prov = $prov . "db";
mysql_select_db('misdatosexternos');
mysql_set_charset('utf8');
// Seguidamente hago una consulta (no la he puesto para resumir) y cierro la conexión:
mysql_close($conexBD);
Poniendo controles y testeando he encontrado, si no me equivoco, que el problema es que el CMS y este script usan la misma ¿sesión? de conexión a la Bd.
Cuando cierro con mysql_close al volver al CMS, esta sin conexión a la bd, y peta...
Para confirmarlo añadi esta línea debajo de la llamada a la función externa:
Código PHP:
mysql_select_db($bddelCMS);
Y ya si funciono todo correctamente.
El problema es que yo no quiero quitarle el mysql_close al script externo ya que ese script en ocasiones se lanzara desde el CMS, y en otras, se llamará directamente. En el caso del CMS no me preocupa que se quede abierto, pero cuando se lanza solo el script lo correcto es que se cierre.
Y la pregunta importante, por que están utilizando la misma sesión de conexión a la bd tanto el script externo como el CMS?
¿Qué se me escapa?