Foros del Web » Programando para Internet » PHP »

error al conectar a mysql

Estas en el tema de error al conectar a mysql en el foro de PHP en Foros del Web. Hola, tengo la siguiente duda: al intentar hacer un query tengo el siguiente error: Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in ...
  #1 (permalink)  
Antiguo 22/07/2008, 14:55
 
Fecha de Ingreso: junio-2008
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
error al conectar a mysql

Hola, tengo la siguiente duda: al intentar hacer un query tengo el siguiente error:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\con\nuevo_cliente.php on line 34

Por lo que lei en el foro en un thread es porque no tiene el resource bien que le paso al mysql_query.
Creo que es un problema de scope de las variables.
Mas o menos la cosa es asi, desde un index.php, hago un include de un archivo que crea una coneccion con la base de datos. Luego desde un menu que carga el index abro otra pagina php, el cual no tiene un include al archivo que hace la coneccion, y quiero usar el resource que creo cuando me conecte. Pero al parecer no funciona, porque donde quiero hacer el query uso la variable como global.
  #2 (permalink)  
Antiguo 22/07/2008, 15:01
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: error al conectar a mysql

y el codigo ???
vamos muestranos la linea donde esta el error de lo contrario no tendremos idea de por que el fallo saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 22/07/2008, 15:22
 
Fecha de Ingreso: junio-2008
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: error al conectar a mysql

error:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\contadores\nuevo_cliente.php on line 37

linea 37:

mysql_query($sql, $conn);

$conn en otro archivo hago esto:

$conn = mysql_connect($server,$user,$pass);
//selecciono la BBDD
mysql_select_db($dbname,$conn);
  #4 (permalink)  
Antiguo 22/07/2008, 18:09
 
Fecha de Ingreso: junio-2008
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: error al conectar a mysql

evidentemente es un problema de scope que estoy teniendo.
A ver si entiendo. Yo en algun archivo tengo el resource a la coneccion con mysql, desde cualquier otro archivo php puedo invocar a ese resource si le antepongo el modificador global?, por mas que no este el archivo incluido con un include o require?
  #5 (permalink)  
Antiguo 22/07/2008, 23:40
 
Fecha de Ingreso: septiembre-2004
Ubicación: Lima
Mensajes: 141
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: error al conectar a mysql

Prueba con mysql_db_query
__________________
"Es mejor arder del todo ke consumirse poco a poco"
  #6 (permalink)  
Antiguo 23/07/2008, 05:59
 
Fecha de Ingreso: junio-2008
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: error al conectar a mysql

mi pregunta es la siguiente, voy a intentear ser un poco mas claro, disculpenme.

Si tengo el archivo, hola.php
Código:
<?php
			$conn = mysql_connect('localhost','contadores','admin');
			mysql_select_db('contadores',$conn); 
?>
Despues tengo otro archivo, casa.php

Código:
<?php
global $conn;

....
mysql_query($sql, $conn);

?>
Puedo hacer un query desde este utilizando el resource del otro?, lo que no hay es un include o require directo del archivo, sino que es indirecto.
  #7 (permalink)  
Antiguo 23/07/2008, 06:05
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: error al conectar a mysql

anion0x,

No importa en que archivo hagas la conexion. Lo que importa es que le pases correctamente la variable de conexion a mysql_query.
Es asi como tu dices, el scope (alcance) de la variable.
El problema puede surgir cuando tu haces el mysql_query por ejemplo desde una funcion, en donde desde alli 'no se ve' la variable de conexion.

Si tu utilizas siempre una conexion, aqui esta la solucion:

Código PHP:
mysql_query($sql); //no le pases el segundo parametro, tomara por defecto la unica conexion existente 
  #8 (permalink)  
Antiguo 23/07/2008, 15:48
 
Fecha de Ingreso: junio-2008
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: error al conectar a mysql

Cita:
Iniciado por xbx Ver Mensaje
anion0x,

No importa en que archivo hagas la conexion. Lo que importa es que le pases correctamente la variable de conexion a mysql_query.
Es asi como tu dices, el scope (alcance) de la variable.
El problema puede surgir cuando tu haces el mysql_query por ejemplo desde una funcion, en donde desde alli 'no se ve' la variable de conexion.

Si tu utilizas siempre una conexion, aqui esta la solucion:

Código PHP:
mysql_query($sql); //no le pases el segundo parametro, tomara por defecto la unica conexion existente 
voy a probarlo como dices.
Muchas Gracias.
  #9 (permalink)  
Antiguo 27/07/2008, 06:02
 
Fecha de Ingreso: junio-2008
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: error al conectar a mysql

lo probe y no funciona, estuve viendo algunas cosas que quiza son cuasantes del problema, si estoy dentro de los tags de php puedo ver las variables, pero luego salgo a modo html y vuelvo a entrar a modo php y ahi es donde pierdo el link?, puede ser que esto es asi?
Si mi razonamiento es correcto, que manera tengo de mantener el link si tengo que salir y entrar a php varias veces?
  #10 (permalink)  
Antiguo 27/07/2008, 09:22
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: error al conectar a mysql

Cita:
Iniciado por anion0x Ver Mensaje
lo probe y no funciona, estuve viendo algunas cosas que quiza son cuasantes del problema, si estoy dentro de los tags de php puedo ver las variables, pero luego salgo a modo html y vuelvo a entrar a modo php y ahi es donde pierdo el link?, puede ser que esto es asi?
Si mi razonamiento es correcto, que manera tengo de mantener el link si tengo que salir y entrar a php varias veces?
Nunca me sucedió eso y no se por qué puede estar pasando.
Quizás tu problema sea otro...
No estarás perdiendo la conexión a la base de datos? no hay un mysql_close intercalado y que no lo veas?

Puedes mostrar un ejemplo de tu problema, mostrado la parte donde sí funciona y que es lo que sucede hasta la parte donde no funciona


Última edición por xbx; 27/07/2008 a las 09:35 Razón: ortografias
  #11 (permalink)  
Antiguo 27/07/2008, 15:10
 
Fecha de Ingreso: junio-2008
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: error al conectar a mysql

no hay ningun mysql_close, lo unico que tengo es header("Location: ..."); que apuntan a diferentes lugares, pero en ningun momento nada raro, en que casos se puede perder la conexion?
  #12 (permalink)  
Antiguo 27/07/2008, 15:15
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: error al conectar a mysql

Cita:
Puedes mostrar un ejemplo de tu problema, mostrado la parte donde sí funciona y que es lo que sucede hasta la parte donde no funciona
Una imagen o unas lineas de código valen más que mil palabras.
  #13 (permalink)  
Antiguo 27/07/2008, 15:18
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: error al conectar a mysql

te recomiendo que en donde vayas a usar la conección coloques en include tu conección
include"conexion.php"

para que te genere la variable y de ahí lo que requieras, global o no global.
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #14 (permalink)  
Antiguo 27/07/2008, 15:23
 
Fecha de Ingreso: junio-2008
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: error al conectar a mysql

no uso include en ninguna parte, siempre require, puede ser esto?, por lo que tenia entendido con require si no esta el archivo genera un error, ademas inserta el codigo en el lugar donde se llama, pero creo que include genera un warning nada mas, esto es asi?.
Vi que hay un hilo al respecto con esto.
  #15 (permalink)  
Antiguo 27/07/2008, 15:31
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: error al conectar a mysql

así es, yo prefiero usar el include en cada pagina donde trabajo la base de datos,, así evito, errores o warnings.

ahora, el include, primero procesa y te deja las variables activas, y el require te exige la página.. prueba con el include en donde haces tu consulta.
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #16 (permalink)  
Antiguo 27/07/2008, 15:44
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: error al conectar a mysql

Consejo 1:

Utiliza include, Pero solo include_once, ya que este te incoca el script de conexion solo una vez, si no repetirias conexiones a tu BD

Consejo 2:

Utiliza una clase para tus valores, y podrias definirlos como estaticos.

Que como?

Archivo Parametros.php
Código PHP:
<?php
class Configuracion{
var 
$Datos = array(    /* cuenta del servidor */
                        
'host'         =>    'localhost';
                        
'user'         =>    'admin',
                        
'pass'         =>    '123456',
                        
'dbname'          =>    'MibaseDatos'
}
var 
$link;
?>
Archivo Conectar.php:
Código PHP:
<?php
include_once("Parametros.php");
class 
conectar extends Configuracion{
function 
_DbConnect(){
$this->link mysql_connect($this->Datos['host'], 
$this->SystemVars['user'], $this->datos['pass']) or $this->_Error(mysql_error(), 'ERROR | DB_ERROR');
mysql_select_db($this->datos['dbname'], $this->link) or $this->_Error(mysql_error(), 'ERROR | DB_ERROR');
        return 
$this->link;
    }

}
?>
De esta manera: la variable $link, contendra el enlace de conexion, la cual podras invocar en cualquier lugar de tu aplicacion.
Y podras invocar los eerores respectivos de la misma forma mediante or $this->_Error(mysql_error(), 'ERROR | DB_ERROR');
  #17 (permalink)  
Antiguo 27/07/2008, 15:49
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: error al conectar a mysql

no sería más viable, colocar dos includes,

al inicio de la página

include "conexion.php";

...
...
..
// al final de la página
include "cerrar_conexion";

no importa cuantas se creen, ya que siempre se cierran.

es menos complicado, digo, si tiene error con los inicios en base de datos, lo viable es dar aportes simples,,
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #18 (permalink)  
Antiguo 27/07/2008, 16:09
 
Fecha de Ingreso: junio-2008
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: error al conectar a mysql

Cita:
Iniciado por norpool1 Ver Mensaje
no sería más viable, colocar dos includes,

al inicio de la página

include "conexion.php";

...
...
..
// al final de la página
include "cerrar_conexion";

no importa cuantas se creen, ya que siempre se cierran.

es menos complicado, digo, si tiene error con los inicios en base de datos, lo viable es dar aportes simples,,
actualmente lo tengo solucionado de la manera que mencionas.
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 07:09.