Foros del Web » Programando para Internet » PHP »

Error increíble al intentar conectarme a mysql

Estas en el tema de Error increíble al intentar conectarme a mysql en el foro de PHP en Foros del Web. Hola. Tengo el siguiente problema, y vengo luchando con el desde hace ya más de tres horas y media. Todavía no puedo llegar a entender ...
  #1 (permalink)  
Antiguo 15/12/2008, 09:57
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Error increíble al intentar conectarme a mysql

Hola. Tengo el siguiente problema, y vengo luchando con el desde hace ya más de tres horas y media. Todavía no puedo llegar a entender que es lo que está pasando. Tengo el siguiente codigo:

Código:
// CONSTANTES

define('DB_SERVER','localhost');
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_NAME','universia');

// VARIABLES GLOBALES

global $DB_CONN;    
global $DB_ROWS_AFFECTED;

function db_connect()
{
    $DB_CONN = mysqli_connect(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME);
    if (!$DB_CONN) throw new Exceptioni('Se ha producido un error. Lo sentimos.',mysqli_error($DB_CONN));
}

function db_disconnect()
{
    $success = mysqli_close($DB_CONN);
    if (!$success) throw new Exceptioni('Se ha producido un error. Lo sentimos.',mysqli_error($DB_CONN));
}
Luego lo llamo de esta forma:

db_connect();
db_disconnect();

Me salen estos errores:


Warning: mysqli_close() expects parameter 1 to be mysqli, null given in C:\wamp\www\UNIVERSIA\Includes\db.php on line 25

Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\wamp\www\UNIVERSIA\Includes\db.php on line 26

----------------------------------------------------------------

La pregunta que me hago es por que me dice que el puntero de conexión es nulo, cuando la conexión se está realizando bien, ya que no me muestra ningún mensaje de error?
¿Se dan una idea por qué?
__________________
Add, never Remove

Última edición por mariano_donati; 15/12/2008 a las 10:14 Razón: agregar más código
  #2 (permalink)  
Antiguo 15/12/2008, 10:27
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: Error increíble al intentar conectarme a mysql

sabes me parece que la variable $DB_CONN queda solo en un ambito local dentro de la funcion
db_connect(); pues al hacer var_dump($$DB_CONN) dentro de la conexion muestra bien que es un puntero de conexion pero al hacer el var_dump(); en el archivo luego de llamar a la funcion lo muestra claramente como NULL

si te sirve de sugerencia ya hago algo similar para la conexion pero, para conectarme no hago una funcion solo incluyo el archivo

Código PHP:
<?php
define
('DB_SERVER','localhost');
define('DB_USER','root');
define('DB_PASSWORD','123456');
define('DB_NAME','pruebas');

    
$DB_CONN mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD)or die("Server".mysql_error());
    
var_dump($DB_CONN);
    
mysql_select_db(DB_NAME)or die("BBDD".mysql_error());
    
//if (!$DB_CONN) throw new Exceptioni('Se ha producido un error. Lo sentimos.',mysqli_error($DB_CONN));

function db_disconnect($DB_CONN)
{
    
    
mysql_close($DB_CONN)or die(mysql_error());
    
//if (!$success) throw new Exceptioni('Se ha producido un error. Lo sentimos.',mysqli_error($DB_CONN));
}
?>
espero te sirva de algo...
__________________
Me junto con los que Saben, Queriendo Saber.
  #3 (permalink)  
Antiguo 15/12/2008, 10:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Error increíble al intentar conectarme a mysql

O en dado caso declarar como global la conexion en la primera funcion usando global $DB_CONN; para que exista en los demas ambitos, recuerda que para cerrarla tambien la vas a necesitar declarar como global.

Saludos.
  #4 (permalink)  
Antiguo 15/12/2008, 10:39
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Cuando intento cerrar la conexión abierta dentro de la misma función db_connect(), entonces no me sale ningún error. Es como que la variable $DB_CONN pierde su valor entre la llamada a db_connect() y la posterior llamada a db_disconnect().

No habia leído sus últimos mensajes. Justamente eso es lo que estaba tratando de decir. Como me explicaste gatorv funcionó. Voy a verificar mejor el uso de la palabra reservada global, ya que habia malentendido su significado.
Saludos y muchas gracias a ambos.
__________________
Add, never Remove

Última edición por GatorV; 15/12/2008 a las 10:47
  #5 (permalink)  
Antiguo 15/12/2008, 10:45
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Error increíble al intentar conectarme a mysql

Talvez este enlace te ayude a entender mejor porque el uso de la palabra global:

http://www.php.net/manual/es/languag...bles.scope.php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:51.