mysqli_affected_rows () ожидает, что параметр 1 будет mysqli, данный объект

Я работаю над проверкой на стороне сервера для формы. Используя AJAX, форма отправляет значение в поле ввода для «username» на мою php-страницу, которая затем проверяет, существует ли это имя пользователя в базе данных.

Вот мой php-код:

$result = mysqli_query($dblink, "SELECT * FROM users WHERE `username` = '$regname'") or die(mysqli_error($dblink)); echo mysqli_affected_rows($result); 

* (На данный момент я делаю простое эхо для mysqli_affected_rows, чтобы увидеть, работает ли мой запрос MySQL по назначению) *

Ошибка, которую я получаю:

Предупреждение: mysqli_affected_rows () ожидает, что параметр 1 будет mysqli, объект указан в /Users/test/Sites/proj/formvalidate.php в строке 20

Я не совсем уверен, что эта ошибка пытается мне сказать. Из того, что у меня есть «объект» Googled, является ссылкой на методы программирования ООП, но (насколько я знаю) я не использую концепции / принципы ООП в этом конкретном примере? Или я неправильно истолковал это сообщение об ошибке?

Спасибо.

Вместо того, чтобы передавать $result в mysqli_affected_rows вы действительно хотите передать ссылку БД (возвращается mysqli_connect ), которая даст вам количество строк, затронутых предыдущим запросом. Видеть:

http://uk.php.net/mysqli_affected_rows

 echo mysqli_affected_rows($dblink); 

Объект mysqli содержит количество пораженных строк, а не набор результатов. Я рекомендую вам использовать mysqli с стилем OO или попробовать PDO.

Вы должны дать только $mysqli_link (в вашем случае $dblink ), а не $result в написанном вами коде.

 echo mysqli_num_rows($result); 

Это должно сработать.