Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema link base de datos

Estas en el tema de problema link base de datos en el foro de PHP en Foros del Web. hola amigos vengo con una consulta: he hecho una coneccion a la base de datos pero me brinca el siguiente error: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: ...
  #1 (permalink)  
Antiguo 31/05/2013, 09:48
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
problema link base de datos

hola amigos vengo con una consulta:

he hecho una coneccion a la base de datos pero me brinca el siguiente error:

Código HTML:
Ver original
  1. Notice: Undefined variable: dblink in C:\xampp\htdocs\st\global.php on line 25
  2.  
  3. Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\st\global.php on line 25

ahora les muestro tengo esto coneccion a la base de datos:

Código PHP:
Ver original
  1. include("config/config.php");
  2. $dblink = mysqli_connect($dbhost, $dbusername, $dbuserpass);
  3. $selected = mysqli_select_db($dblink,$db1);
  4. if (!$selected) {
  5.     die ('Error de Conexión a la base de Datos. '.mysqli_error($dblink));
  6. }
  7. $dblink->query("SET NAMES 'utf8'");
  8. header("Content-type:text/html; charset=utf-8");

y lo llamo con un include ya que esta en un archivo aparte para evitar repetir codigos:

Código PHP:
Ver original
  1. include("st/connection1.php");

lo utilizo con el siguiente php que debe hacer update al nombre de usuario o nick de una persona:

Código PHP:
Ver original
  1. function updateusername($username){
  2.     $id=$_SESSION['id'];
  3.     $olduser=$_SESSION['usuario'];
  4.     mysqli_query($dblink, "UPDATE user SET username=$username WHERE id = $id ");
  5.     $_SESSION['usuario'] = $username;
  6.     $smg=" <br> Usted acaba de cambiar su nombre de usuario: <br><br> Anterior: ".$olduser." <br> Actual: ".$username." <br><br> Recuerde que el nombre de usuario lo usara para iniciar sesión. ";
  7.     echo "<script>alert('$smg')</script>";
  8. }
  9. if(isset($_POST['username'])){ 
  10.     updateusername($_POST['username']);
  11. }
pero como les decia manda el error en la linea 25 que es la del querry

Cita:
mysqli_query($dblink, "UPDATE user SET username=$username WHERE id = $id ");
alquien que vea y me diga que es lo que hace falta??
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #2 (permalink)  
Antiguo 31/05/2013, 10:08
 
Fecha de Ingreso: mayo-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: problema link base de datos

Hola... el error te da porque no se pasa el valor de la variable que tiene la conexión a la base de datos. La variable $dblink no la puedes tomar así dentro de una función; te aconsejo que la pongas a la conexión dentro de una función que te devuelva la variable con la conexión, y la puedes llamar desde donde tu desees (pero a la función, la cual la colocas en una variable dentro de la función y a esa es la que utilizas). Puedes intentar también probar con la POO, que podría solucionar de mejor manera el estar poniendo en una y otra parte las mismas lineas de codigo.
  #3 (permalink)  
Antiguo 31/05/2013, 10:12
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: problema link base de datos

chicho gracias por contestar pero después de leer

Cita:
Hola... el error te da porque no se pasa el valor de la variable que tiene la conexión a la base de datos. La variable $dblink no la puedes tomar así dentro de una función; te aconsejo que la pongas a la conexión dentro de una función que te devuelva la variable con la conexión, y la puedes llamar desde donde tu desees (pero a la función, la cual la colocas en una variable dentro de la función y a esa es la que utilizas). Puedes intentar también probar con la POO, que podría solucionar de mejor manera el estar poniendo en una y otra parte las mismas lineas de codigo.
deje de entenderte XD
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #4 (permalink)  
Antiguo 31/05/2013, 10:27
 
Fecha de Ingreso: mayo-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: problema link base de datos

Mira puedes probar hacerlo de esta manera:

function conexion(){
$dblink = mysqli_connect($dbhost, $dbusername, $dbuserpass);
$selected = mysqli_select_db($dblink,$db1);
if (!$selected) {
die ('Error de Conexión a la base de Datos. '.mysqli_error($dblink));
}
$dblink->query("SET NAMES 'utf8'");
return $dblink;
}

y en esta función:

function updateusername($username){
$id=$_SESSION['id'];
$olduser=$_SESSION['usuario'];
mysqli_query($dblink, "UPDATE user SET username=$username WHERE id = $id ");
$_SESSION['usuario'] = $username;
$smg=" <br> Usted acaba de cambiar su nombre de usuario: <br><br> Anterior: ".$olduser." <br> Actual: ".$username." <br><br> Recuerde que el nombre de usuario lo usara para iniciar sesión. ";
echo "<script>alert('$smg')</script>";
}

le puedes cambiar de esta menera:

function updateusername($username){
$id=$_SESSION['id'];
$olduser=$_SESSION['usuario'];
$dblink=conexion();
mysqli_query($dblink, "UPDATE user SET username=$username WHERE id = $id ");
$_SESSION['usuario'] = $username;
$smg=" <br> Usted acaba de cambiar su nombre de usuario: <br><br> Anterior: ".$olduser." <br> Actual: ".$username." <br><br> Recuerde que el nombre de usuario lo usara para iniciar sesión. ";
echo "<script>alert('$smg')</script>";
}
  #5 (permalink)  
Antiguo 31/05/2013, 12:30
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: problema link base de datos

en los dos ultimos no hay diferencia aparate de que es mi propio codigo XD
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #6 (permalink)  
Antiguo 31/05/2013, 12:34
 
Fecha de Ingreso: mayo-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: problema link base de datos

Si, la unica diferencia es que llamas a la función para conectarte a la BD:

function updateusername($username){
$id=$_SESSION['id'];
$olduser=$_SESSION['usuario'];
$dblink=conexion();
mysqli_query($dblink, "UPDATE user SET username=$username WHERE id = $id ");
$_SESSION['usuario'] = $username;
$smg=" <br> Usted acaba de cambiar su nombre de usuario: <br><br> Anterior: ".$olduser." <br> Actual: ".$username." <br><br> Recuerde que el nombre de usuario lo usara para iniciar sesión. ";
echo "<script>alert('$smg')</script>";
}
  #7 (permalink)  
Antiguo 01/06/2013, 13:41
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: problema link base de datos

ok si me funciona y gracias por la solucion el problema es que yo tengo la variable de coneccion en otro archivo:

Código PHP:
Ver original
  1. function conexion(){
  2. include("variables de coneccion.php");// no me cargan
  3. $dblink = mysqli_connect($dbhost, $dbusername, $dbuserpass);
  4. $selected = mysqli_select_db($dblink,$db1);
  5. if (!$selected) {
  6. die ('Error de Conexión a la base de Datos. '.mysqli_error($dblink));
  7. }
  8. $dblink->query("SET NAMES 'utf8'");
  9. return $dblink;
  10. }
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Etiquetas: html, link, mysql, select
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 15:58.