Я работаю над проверкой на стороне сервера для формы. Используя 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
), которая даст вам количество строк, затронутых предыдущим запросом. Видеть:
echo mysqli_affected_rows($dblink);
Объект mysqli содержит количество пораженных строк, а не набор результатов. Я рекомендую вам использовать mysqli с стилем OO или попробовать PDO.
Вы должны дать только $mysqli_link
(в вашем случае $dblink
), а не $result
в написанном вами коде.
echo mysqli_num_rows($result);
Это должно сработать.