sea que parámetros parámetro parameter mysqli_select_db mysqli_query mysqli_num_rows mysqli_affected_rows menos expects espera ejemplo dada cadena affected advertencia php mysqli

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:

http://uk.php.net/mysqli_affected_rows

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.