Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema pasando de mysql a mysqli

Estas en el tema de problema pasando de mysql a mysqli en el foro de PHP en Foros del Web. Hola amigos vengo por aqui para hacerles una consulta y ver quien me puede brindar ayuda; antes tenia la coneccion de esta manera y me ...
  #1 (permalink)  
Antiguo 22/05/2013, 03:56
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
problema pasando de mysql a mysqli

Hola amigos vengo por aqui para hacerles una consulta y ver quien me puede brindar ayuda;

antes tenia la coneccion de esta manera y me funcionada muy bien:

Código PHP:
Ver original
  1. include("../config/config.php");
  2. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  3. mysql_select_db($db1) or die('No se puede seleccionar la base de datos');
  4. mysql_query("SET NAMES 'utf8'");

PEro como he visto que mysql quedo ya obsoleto he intentado pasarme a mysqli... por que pense que era similar al otro, peroooo al intentar hacer la nueva coneccion la eh estructurado asi y me da error:

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

dentro del archivo config.php esta todo perfectamente ya que con una me funciona y con la otra no...

el Error en pantalla es: No Database Selected

he buscado pero nada de lo que hago aporta algo a mi código...
esto es utilisado para un sistema de loggin de usuario:


Código PHP:
Ver original
  1. if ($_POST['username']) {
  2.     $username = $_POST['username'];
  3.     $password = $_POST['password'];
  4.     $pass = sha1($roossweld.$_POST['password']);
  5.     if ($pass==NULL) {
  6.         header('refresh:10; url=../index.php');
  7.         echo "<br> <br>";
  8.         echo "La Contraseña no fue enviada<br>";
  9.     }else{
  10.         $query = mysqli_query("SELECT username,password FROM user WHERE username = '$username'") or die('Error de Conexión a la base de Datos. [' . $mysqli->connect_error . ']');
  11.         $data = mysqli_fetch_array($query);
  12.         if($data['password'] != $pass) {
  13.             header('refresh:10; url=../index.php');
  14.             echo "<br> <br>";
  15.             echo "Login incorrecto,".$password." La contraseña utilisada es incorrecta.<br>";
  16.             echo "Informacion nesesaria:<br>";
  17.             echo "Nombre Completo<br>";
  18.             echo "Telefono<br>";
  19.             echo "e-mail (el utilisado para crear la cuenta.)<br>";
  20.         }else{
  21.             $query = mysqli_query("SELECT id,username,password,nombre,apellido,email,telefono,foto,direccion,firma,tuser FROM user WHERE username = '$username'") or die('Error de Conexión a la base de Datos. [' . $mysqli->connect_error . ']');
  22.             $row = mysqli_fetch_array($query);
  23.             $_SESSION["s_username"] = $row['username'];
  24.             $_SESSION['id'] = $row['id'];

asiendo estas modificaciones nuevo error en pantalla: Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\st\ent.php on line 45
Error de Conexión a la base de Datos. []

la linea 45 es :

Código PHP:
Ver original
  1. $query = mysqli_query("SELECT username,password FROM user WHERE username = '$username'") or die('Error de Conexión a la base de Datos. [' . $mysqli->connect_error . ']');
__________________
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

Última edición por arcanisgk122; 22/05/2013 a las 04:02
  #2 (permalink)  
Antiguo 22/05/2013, 04:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema pasando de mysql a mysqli

Parece ser que te falta esta línea:

$mysqli->select_db("tu_base_de_datos");
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 22/05/2013, 06:11
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: problema pasando de mysql a mysqli

y adonde va??

Actualizo he agregado de esta forma:

Código PHP:
Ver original
  1. include("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.  
  9. header("Content-type:text/html; charset=utf-8");

el problema ahora radica en la linea 45...

Código PHP:
Ver original
  1. $query = mysqli_query("SELECT username,password FROM user WHERE username = '$username'") or die('Error de Conexión a la base de Datos. [' . $mysqli->connect_error . ']');

dice que se esperaban 2 parámetros que me hace falta???


CORRECCION:

Fataba apuntar por enesima ves a la base de datos:

$query = mysqli_query($dblink,"SELECT username,password FROM user WHERE username = '$username'") or die ('Error de Conexión a la base de Datos. '.mysqli_error($dblink));

mysqli es un choyo... por que el codigo se vuelve una burla para lo que era mysql antes... tiene mas requerimientos que a la larga lo veo como inesesarios...
__________________
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

Última edición por arcanisgk122; 22/05/2013 a las 06:26

Etiquetas: html, mysql, mysqli, pasando, select, sql
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:29.