Foros del Web » Programando para Internet » PHP »

Access denied for user 'ODBC'@'localhost' (using password: NO)

Estas en el tema de Access denied for user 'ODBC'@'localhost' (using password: NO) en el foro de PHP en Foros del Web. Un script me tira este error: Access denied for user 'ODBC'@'localhost' (using password: NO) el código es: <? $cod_alumno=$_POST[cod_alumno]; $carrera=$_POST[carrera]; $año_ing=$_POST[año_ing]; $apellidos=$_POST[apellidos]; $nombres=$_POST[nombres]; $dni=$_POST[dni]; $fecha_nac=$_POST[fecha_nac]; ...
  #1 (permalink)  
Antiguo 12/01/2006, 12:19
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
Access denied for user 'ODBC'@'localhost' (using password: NO)

Un script me tira este error:

Access denied for user 'ODBC'@'localhost' (using password: NO)

el código es:

<?

$cod_alumno=$_POST[cod_alumno];
$carrera=$_POST[carrera];
$año_ing=$_POST[año_ing];
$apellidos=$_POST[apellidos];
$nombres=$_POST[nombres];
$dni=$_POST[dni];
$fecha_nac=$_POST[fecha_nac];
$lugar_nac=$_POST[lugar_nac];
$domicilio=$_POST[domicilio];
$localidad=$_POST[localidad];
$provincia=$_POST[provincia];
$tel_1=$_POST[tel_1];
$tel_2=$_POST[tel];
$trabaja=$_POST[trabaja];
$profesion=$_POST[profesion];
$dom_prof=$_POST[dom_prof];
$horarios=$_POST[horarios];
$titulo_med=$_POST[titulo_med];
$colegio=$_POST[colegio];
$observaciones=$_POST[observaciones];
$baja=$_POST[baja];

$query_insert="insert into datos_personales_alumnos (cod_alumno , carrera , año_ing , apellidos , nombres , dni , fecha_nac ,
lugar_nac , domicilio , localidad , provincia , tel_1 , tel_2 , trabaja , profesion , dom_prof , horarios, titulo_med ,
colegio , observaciones , baja) values ('$cod_alumno' , '$carrera' , '$año_ing' , '$apellidos' , '$nombres' , '$dni' , '$fecha_nac' ,
'$lugar_nac' , '$domicilio' , '$localidad' , '$provincia' , '$tel_1' , '$tel_2' , '$trabaja' , '$profesion' , '$dom_prof' ,
'$horarios', '$titulo_med' , '$colegio' , '$observaciones' , '$baja')" ;


session_start();
if ($_SESSION[permisos] == 3)
{
mysql_query($query_insert) or die(mysql_error());
$resultado = mysql_query($query_insert);
while ($row = mysql_fetch_array($resultado))
{
echo'<tr><td>'.$row["carrera"].'</td></tr>';
}

}else{
session_destroy();
mysql_close();
header("Location: fullintentos.php");
}

//pruebo si pasa...
echo $query_insert;
?>
  #2 (permalink)  
Antiguo 12/01/2006, 12:38
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
En ningun se observa tu mysql_connect()
  #3 (permalink)  
Antiguo 12/01/2006, 13:03
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Es más, ni sabemos si vas a hacer la conexión a una base de datos MySQL o ODBC... ¿?
  #4 (permalink)  
Antiguo 12/01/2006, 13:05
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
Vengo con una conexión abierta en una página anterior. Si le agrego un mysql_close(), y una función de conexión no me muestra absolutamente nada.
  #5 (permalink)  
Antiguo 12/01/2006, 13:11
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
Por ejemplo le agregue esto:

session_start();
mysql_close(); <<<<<<<<
if ($_SESSION[permisos] == 3)
{
conectar_admin('sga');<<<<<<<<<<<<<
mysql_query($query_insert) or die(mysql_error());
$resultado = mysql_query($query_insert);
while ($row = mysql_fetch_array($resultado))
{
echo'<tr><td>'.$row["apellidos"].'</td></tr>';
}

}else{
session_destroy();
mysql_close();
header("Location: fullintentos.php");
}

//pruebo si pasa...
echo $query_insert;
  #6 (permalink)  
Antiguo 12/01/2006, 13:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Las conexiones que tu abres en un script sólo tiene validez para el script que las abre .. Si tu vas a usar en otro script tu acceso a tu BD . .deber volver a reconectar en el mismo otra vez. Ni usando conexiones persistentes te evita hacer ese procedimiento siempre.

Toda conexión y variable muere al terminar la ejecución de tus scripts.


Un saludo,
  #7 (permalink)  
Antiguo 12/01/2006, 13:24
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
igual, ahora abre la página pero no me muestra el contenido de $row;
  #8 (permalink)  
Antiguo 12/01/2006, 13:25
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Pregunta

Cluster Yo tenia entendido que aun terminando el script con mysql_pconnect() se mentiene la conexion a la bd y se termina dicha conexión con mysql_close() ¿Estoy equivocado?
  #9 (permalink)  
Antiguo 12/01/2006, 13:33
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
¿En donde esta tu función?

Código PHP:
conectar_admin('sga'); 
  #10 (permalink)  
Antiguo 12/01/2006, 13:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Con conexiones persistentes lo que guarda tu BD (Mysql por ejemplo) es la referencia de tu cliente que la abrió.

Las conexiones persistentes no mueren con "mysql_close()":

Cita:
mysql_close() closes the non-persistent connection to the MySQL server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is used.
http://www.php.net/mysql_close

El comentario iva por el lado que siempre se ha de hacer:
msyql_connect()

o en tu caso:
mysql_pconnect()

Será Mysql el que decida si el "link" de conexión para ese cliente sigue activo para continuar usandolo o bien crear uno nuevo.

Cita:
First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (mysql_close() will not close links established by mysql_pconnect()).
http://www.php.net/manual/en/functio...l-pconnect.php

(Por mi parte siempre he usado mysql_pconnect() .. no he probado a quitarselo a ver como se comporta ..pero en tal caso que pasaría si se pierde la conexión persistente? .. Usando mysql_pconnect() siempre .. es Msyql el que decide si re-conectar o seguir usando una en curso).

Un saludo,
  #11 (permalink)  
Antiguo 12/01/2006, 13:40
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
Cita:
Iniciado por mauled
¿En donde esta tu función?

Código PHP:
conectar_admin('sga'); 
Es una include mas arriba ,

Function conectar_admin($sistema)
{
$link = mysql_connect(localhost, root, contraseña);
if (!$link) {
die (mysql_error());
}
mysql_select_db($sistema,$link);

}
?>

IGUALMENTE CREO QUE ME ESTOY EQUIVOCANDO EN LA FORMA DE ARMAR EL QUERY INSERT Y LUEGO EL WHILE PARA MOSTRAR. Pero no encuentro el problema.... :(
  #12 (permalink)  
Antiguo 12/01/2006, 13:45
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Si no te esta arrojando ningun error al realizar la conexión o al realizar una el query. Checa que tu variable de sesion $_SESSION[permisos] si se le este asignando el valor de 3 de manera correcta y no esta de mas que cheques si tu tabla por casualidad no se encuentra vacia

Última edición por mauled; 12/01/2006 a las 14:06
  #13 (permalink)  
Antiguo 12/01/2006, 13:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Podrías indicar el código completo que usas para verlo -en su contexto- .. así te podremos hacer sugerencias.

Un saludo,
  #14 (permalink)  
Antiguo 12/01/2006, 13:53
Avatar de Juanmax  
Fecha de Ingreso: diciembre-2005
Ubicación: Paraná, Entre Ríos , Argentina
Mensajes: 90
Antigüedad: 18 años, 4 meses
Puntos: 0
ahí vamos...

Este es el código. El insert no funciona, mysql no da erroes, la tabla no se llena, la variable de session tiene el valor correcto para esa línea:
__________________________________________________ ____

Código PHP:
<?
include("conexiones.php");
$cod_alumno=$_POST[cod_alumno];
$carrera=$_POST[carrera];
$a&#241;o_ing=$_POST[año_ing];
$apellidos=$_POST[apellidos];
$nombres=$_POST[nombres];
$dni=$_POST[dni];
$fecha_nac=$_POST[fecha_nac];
$lugar_nac=$_POST[lugar_nac];
$domicilio=$_POST[domicilio];
$localidad=$_POST[localidad];
$provincia=$_POST[provincia];
$tel_1=$_POST[tel_1];
$tel_2=$_POST[tel];
$trabaja=$_POST[trabaja];
$profesion=$_POST[profesion];
$dom_prof=$_POST[dom_prof];
$horarios=$_POST[horarios];
$titulo_med=$_POST[titulo_med];
$colegio=$_POST[colegio];
$observaciones=$_POST[observaciones];
$baja=$_POST[baja];

$query_insert="insert into datos_personales_alumnos (cod_alumno , carrera , año_ing , apellidos , nombres , dni , fecha_nac , 
lugar_nac , domicilio , localidad , provincia , tel_1 , tel_2 , trabaja , profesion , dom_prof , horarios,  titulo_med , 
colegio , observaciones , baja) values ('$cod_alumno' , '$carrera' , '$año_ing' , '$apellidos' , '$nombres' , '$dni' , '$fecha_nac' , 
'$lugar_nac' , '$domicilio' , '$localidad' , '$provincia' , '$tel_1' , '$tel_2' , '$trabaja' , '$profesion' , '$dom_prof' , 
'$horarios',  '$titulo_med' , '$colegio' , '$observaciones' , '$baja')" 
;


session_start();
if (
$_SESSION[permisos] == 3)
    {
    
conectar_admin('sga');
    
mysql_query($query_insert,$link) or die(mysql_error());
    
$resultado mysql_query($query_insert);
            while (
$row mysql_fetch_array($resultado))
            {
             echo 
$row["apellidos"];
            }
    
    }else{
    
session_destroy();
    
mysql_close();
    
header("Location: fullintentos.php");
    }
    
//pruebo si pasa...
echo $query_insert;
?>
______________________
Gracias a todos... Juanmax

Última edición por Cluster; 12/01/2006 a las 14:24
  #15 (permalink)  
Antiguo 12/01/2006, 14:08
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
tienes que poner comillas en las variables de post

Código PHP:
$cod_alumno=$_POST["cod_alumno"];
$carrera=$_POST["carrera"];
$año_ing=$_POST["año_ing"];
$apellidos=$_POST["apellidos"];
.
.

  #16 (permalink)  
Antiguo 12/01/2006, 14:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y de $_SESSION y en general de cualquier llamada a un indice de un array (para evitar confusiones con "constantes" que van sin comillas; no son strings (cadenas))

Te fijas en un detalle .. puse a "colorear" el código que pusistes y ya saltó un problema con una "ñ" .. NOOOO uses nombres de variables con ñ, acentos y demás caracteres similares.

También se observa que defines tu sentencia SQL a ejecutar:
$query_insert .. pero NO la ejecutas.
Te faltaría un:
Código PHP:
mysql_query($query_insert) or die (mysql_error()); 

Un saludo,
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 18:53.