Foros del Web » Programando para Internet » PHP »

Terror! conexion a una bd cualquiera!

Estas en el tema de Terror! conexion a una bd cualquiera! en el foro de PHP en Foros del Web. Hola a todos... la verdad estoy un poco frustrado a estas alturas...intento conectar mediante un script php a una base de datos mysql que NO ...
  #1 (permalink)  
Antiguo 06/11/2005, 21:35
Avatar de d3j4vu  
Fecha de Ingreso: julio-2005
Ubicación: Ñuñoa en Santiago de Chile
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Terror! conexion a una bd cualquiera!

Hola a todos...

la verdad estoy un poco frustrado a estas alturas...intento conectar mediante un script php a una base de datos mysql que NO ES la bd 'mysql'.

por ejemplo, creo una bd llamada 'ejemplo', cuyos dos campos son de tipo text y son: 'username' y 'password'. y hago esto:

mysql_connect("localhost","pepito","passworddepepi to") or die("no conectado");

los valores para username y password en la base de datos 'ejemplo' son 'pepito' y 'passworddepepito' respectivamente.

lo que no comprendo es si la conexion la debo hacer con los valores de los campos user y pass del root del servidor mysql o con los campos de 'username' y 'password' de la base de datos llamada 'ejemplo' que he creado.

tengo una confusion horrenda con esto, pido ayuda y les agradezco de antemano.

saludos!
  #2 (permalink)  
Antiguo 06/11/2005, 21:50
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
Es que alli estableces la conexion, pero no seleccionas la base de datos, por otra parte, "ejemplo" es la BASE DE DATOS o una tabla dentro de una DB?, por lo que me decis, es una tabla (las tablas estan compuestas por campos, y las DB por tablas...).

Código PHP:
<?
$dbh
=@mysql_connect("localhost""user""pass") or include("db_error.php");
@
mysql_select_db("pepito_db") or include("db_error.php");
?>
Esa seria una conexion y seleccion de base de datos, ahora debes trabajar con las tablas de la DB "pepito_db"..., por ejemplo "pepito"

Código PHP:
<?php
$sql 
mysq_fetch_assoc("SELECT * FROM `pepito`");
while(
$row=mysql_fetch_assoc($sql)) {
echo 
$row["username"].' => '.$row["password"];
}
?>
Decime si se entiende, o si no es el problema que tenes...
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 07/11/2005, 04:22
Avatar de d3j4vu  
Fecha de Ingreso: julio-2005
Ubicación: Ñuñoa en Santiago de Chile
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
gracias antes que nada por tu respuesta.

mira, la base de datos con la que trabajo se llamara 'ejemplo', y en esta base de datos hay una tabla que contiene dos campos de tipo text llamados 'username' y 'password', y lo que intento es conectarme a esta base de datos con esas credenciales, es decir:

mysql_connect("localhost","pepito","passworddepepi to");

mi duda es que si debo conectarme con las credenciales del suepr usuario del servidor mysql (tipicamente root en una instalacion por defecto de mysql 4.1.12) o con las credenciales del usuario especifico de la base de datos llamada 'ejemplo'.

lo que sucede es que cuando me conecto con las credenciales del super usuario del servidor de bases de datos mysql (el que tiene derechos sobre TODO el servidor) no tengo problemas en la conexion, pero con el usuario especifico de la base de datos no me resulta. es decir, ¿tengo que realizar algo adicional? hasta el momento hago esto:

$conectado = mysql_connect("localhost","pepito","passworddepepi to") or die("imposible conectar");

$seleccionar_bd = mysql_select_db("ejemplo",$conectado);

pero no me resulta. de esta otra forma, si resulta:

$conectado = mysql_connect("localhost","root","passwordderoot") or die("imposible conectar");

$selecionar_bd("ejemplo",$conectado);

espero sirva esta info adicional.

gracias por tu ayuda!
  #4 (permalink)  
Antiguo 07/11/2005, 08:12
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
Si la base de datos tiene asignado un usuario y un password, pues debes conectarte con ellos, pero, de lo contrario, los campos quedan VACIOS, no con "root"... por defecto -creo yo- no hay que poner user y pass

Yo en mi server local simplemente hago:
mysql_connect("localhost","","");
mysql_select_db("db_name") ;
__________________
I Love Programming...
  #5 (permalink)  
Antiguo 07/11/2005, 10:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
lo que sucede es que cuando me conecto con las credenciales del super usuario del servidor de bases de datos mysql (el que tiene derechos sobre TODO el servidor) no tengo problemas en la conexion, pero con el usuario especifico de la base de datos no me resulta. es decir, ¿tengo que realizar algo adicional? hasta el momento hago esto:
Estas confundiedo lo que significan los usuarios de Mysql (de tu RDBMS) con "datos" que tu puedas crear para una aplicación concreta, como podría ser un "usuario" y un "password".

Mysql es un "motor" de base de datos que gestiona usuarios con sus permisos de acceso y contraseñas además de políticas de restricciones para limitar acciones sobre determinadas tablas o base de datos completas sobre dicho servidor .. NO tiene nada que ver con "usuario" que tu puedas gestionar para tus aplicaciones: creación de tablas y/ BD.

Recuerda que las conexiones a tus Base de datos lo hacen tus scripts PHP con los datos de conexión que le aportes y que siempre sean usuarios de Mysql .. Si quieres ser más restrictivo con lo que eventualmente cierto usuario de Msyql podría hacer .. crea nuevos usuarios con menos privilegios .. Pero nunca los confundas con los de tus "Aplicaciones" y el sentido o lo que hagan estos en TUs aplicaciones.

Uno, nunca va a usar los mismos usuarios de una aplicación como usuarios de Mysql .. Son tus scripts PHP los que suelen usar UN sólo usuario para conectartse a tus BD .. lo que hagan o no los usuarios de tu aplicación ya lo gestionarás tu con tus scripts PHP y lógica de estos.


Un saludo,
  #6 (permalink)  
Antiguo 07/11/2005, 11:35
Avatar de d3j4vu  
Fecha de Ingreso: julio-2005
Ubicación: Ñuñoa en Santiago de Chile
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
gracias a ambos por sus respuestas...

entonces, el super usuario (el que uno provee en la instalacion del mysql) es UNO y no tiene NADA QUE VER con un usuario, que por ejemplo, se intenta logear en una pagina php??

es decir, el super usuario (administrador del servidor mysql) no se debe ocupar en el string de conexion a las diferentes bases de datos?

si quiero logear un usuario cualquiera, este usuario debe estar registrado en la tabla user de la base de datos llamada 'mysql'? o no es necesario? o solo debo tenerlo dentro de la base de datos que voy a utilizar, en el momento en que este usuario comun se intente logear?

gracias de antemano por sus aclaraciones, es que tengo una confusion del demonio...

saludos!
  #7 (permalink)  
Antiguo 07/11/2005, 11:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
es decir, el super usuario (administrador del servidor mysql) no se debe ocupar en el string de conexion a las diferentes bases de datos?

No, lo entendistes al reves ..

Olvidate si es "super usuario" o si te creas un usuario en Mysql para accederla. Ese usuario será el que uses en tu "string" de conexión (mysql_connect()) de PHP.

La tabla "mysql" gestiona usuarios de Msyql .. pero los creas con algún administrador de Mysql como por ejemplo: phpMyadmin (www.phpmyadmin.net) .. donde puedes establecer todo el tema de permisos que te mencioné.

Insisto nuevamente que estos "usuarios" no tienen nada que ver con los que tus aplicaciones usen o definan .. Sólo para "conectarte" a tu BD Mysql (vía mysql_connect())

Un saludo,
  #8 (permalink)  
Antiguo 07/11/2005, 12:02
Avatar de d3j4vu  
Fecha de Ingreso: julio-2005
Ubicación: Ñuñoa en Santiago de Chile
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
todo solucionado cluster...muchisimas gracias por tu excelente disposicion...

estaba realizando la conexion en forma erronea. ya me quedo claro que no es requisito usar el usuario administrador del servidor mysql necesariamente. sino que es posible crear uno, con el que realizar un logeo y segun eso, permitirle operar sobre la bd.

muchas gracias nuevamente, saludos!
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 08:28.