php - parámetros - mysqli_affected_rows() espera que el parámetro 1 sea mysqli, objeto dado
mysqli_select_db() espera que el parámetro 1 sea mysqli (4)
En lugar de pasar $result
a mysqli_affected_rows
, en realidad quiere pasar el enlace DB (devuelto por mysqli_connect
) que le dará el número de filas afectadas por la consulta anterior. Ver:
Estoy trabajando en la validación del lado del servidor para un formulario. Usando AJAX, el formulario envía el valor en el campo de entrada para ''nombre de usuario'' a mi página php, que luego verifica si este nombre de usuario ya existe en la base de datos.
Aquí está mi código php:
$result = mysqli_query($dblink, "SELECT * FROM users WHERE `username` = ''$regname''")
or die(mysqli_error($dblink));
echo mysqli_affected_rows($result);
* (En este momento estoy haciendo un eco simple para mysqli_affected_rows solo para ver si mi consulta MySQL está funcionando como estaba previsto) *
El error que estoy recibiendo es:
Advertencia: mysqli_affected_rows () espera que el parámetro 1 sea mysqli, objeto dado en /Users/test/Sites/proj/formvalidate.php en la línea 20
No estoy muy seguro de lo que este error intenta decirme. Por lo que he buscado en Google, el "objeto" es una referencia a los métodos de programación OOP, pero (hasta donde yo sé), ¿no estoy usando conceptos / principios OOP en este ejemplo en particular? ¿O malinterpreté este mensaje de error?
Gracias.
Solo debe dar $mysqli_link
(en su caso $dblink
), no el $result
en el código que ha escrito.
echo mysqli_affected_rows($dblink);
El objeto mysqli contiene el recuento de las filas afectadas, no el conjunto de resultados. Te recomiendo que uses mysqli con estilo OO o pruebes con PDO.
echo mysqli_num_rows($result);
Esto debería funcionar.