Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Errores Mysql_query a Mysqli_query

Estas en el tema de Errores Mysql_query a Mysqli_query en el foro de PHP en Foros del Web. Estimados, he estado cambiando mi código de mysql a mysqli y he tenido unos problemas al querer conectarme. con el Appserv que tenía, cero problemas, ...
  #1 (permalink)  
Antiguo 02/07/2014, 15:20
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 15 años, 8 meses
Puntos: 5
De acuerdo Errores Mysql_query a Mysqli_query

Estimados, he estado cambiando mi código de mysql a mysqli y he tenido unos problemas al querer conectarme. con el Appserv que tenía, cero problemas, pero al migrar una aplicación al XAMP me arrojado errores.
Aquí les dejo mi código paraque me ayuden en que estoy mal.

conexion.php
Código PHP:
<?php
$servidor
="localhost";
$usuario="usuario";
$password="mypass";
$basedatos="mydb";
$conexion=@mysqli_connect ($servidor,$usuario,$password); 
@
mysqli_select_db($conexion$basedatos); 
?>
Formulario de ingreso de usuarios que va a un archivo llamadp
control.php
Código PHP:
<?php
include('config/conexion.php');
    
   
     
$usuario mysqli_query($conexion"SELECT usuario FROM usuarios 
                                 WHERE usuario =  '"
.htmlentities($_POST["txt_usuario"])."'");
     
$numusuario mysqli_num_rows($usuario);

     
//Si existe el usuario, validamos también la contraseña ingresada y el estado del usuario...
     
if($numusuario != 0){
          
$sql "SELECT CONCAT(nombre, apellido),nivel
               FROM usuarios
               WHERE estado = 'activo'
               AND usuario = '"
.htmlentities($_POST["txt_usuario"])."' 
               AND password = '"
.htmlentities($_POST["txt_password"])."'";
          
$clave mysqli_query($conexion$sql);
          
$numclave mysqli_num_rows($conexion$clave);
         
           
//Si el usuario y clave ingresado son correctos (y el usuario está activo en la BD), creamos la sesión del mismo.
          
if($numclave != 0){
               
session_start();
               
//Guardamos dos variables de sesión que nos auxiliará para saber si se está o no "logueado" un usuario
               
$_SESSION["autentica"] = "SIP";
               
$_SESSION["nivel"] = mysqli_result($clave,0,1);
               
$_SESSION["usuarioactual"] = mysqli_result($clave,0,0); //nombre del usuario logueado.
               //Direccionamos a nuestra página principal del sistema.
               
header ("Location: index.php");
          }
          else{
               echo
"<script>alert('La contrase\u00f1a del usuario no es correcta o el usuario no está activo');
               window.location.href=\"login.php\"</script>"

          }
     }else{
          echo
"<script>alert('El usuario no existe.');
          window.location.href=\"login.php\"</script>"
;
     }
     
mysqli_close($conexion);
?>
Y el error que me da es el siguiente:

Warning: mysqli_num_rows() expects exactly 1 parameter, 2 given in C:\xampp\htdocs\programa\control.php on line 17

Espero su ayuda o un ejemplo de como conectarme con MYSQLI y consultar con el mismo, que en el Appserv no tengo problemas.


Saludos
  #2 (permalink)  
Antiguo 02/07/2014, 15:30
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Errores Mysql_query a Mysqli_query

El error es claro; estas pasando dos parametros a mysqli_num_rows y solo acepta uno
Código PHP:
Ver original
  1. if($numusuario != 0){
  2.           $sql = "SELECT CONCAT(nombre, apellido),nivel
  3.               FROM usuarios
  4.               WHERE estado = 'activo'
  5.               AND usuario = '".htmlentities($_POST["txt_usuario"])."'
  6.               AND password = '".htmlentities($_POST["txt_password"])."'";
  7.           $clave = mysqli_query($conexion, $sql);
  8.           $numclave = mysqli_num_rows($conexion, $clave);

La ultima linea debe de ser:
Código PHP:
Ver original
  1. $numclave = mysqli_num_rows($conexion);
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 02/07/2014, 21:37
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: Errores Mysql_query a Mysqli_query

me pregunto por que le pasas dos variables...
__________________
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: errores, formulario, html, mysql, select, sql, usuarios, variable
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 16:45.