mysql_num_rows и mysql_affered_rows возвращают один и тот же результат при выполнении SELECT SQL

Мой тестовый код:

    $connection = mysql_connect('localhost', 'root', '') or die(mysql_error());

    mysql_select_db("chaoge", $connection);

    mysql_query("SET NAMES UTF8", $connection);

    $rs = mysql_query("SELECT * FROM babel_node WHERE nod_pid = 2101", $connection);

    $nu = mysql_affected_rows();
    echo $nu;

Там написано, что mysql_affered_rows работает с INSERT, UPDATE, REPLACE и DELETE。

Почему я также могу получить правильный результат через mysql_affected_rows?

Любая помощь и предложения будут весьма заметны。

2 ответа

Решение

Вот что я нашел в интернете.

mysql_affered_rows() для SELECT указывает количество найденных строк. mysql_num_rows() указывает, сколько строк было фактически возвращено. Они могут не совпадать, IIRC, если у вас есть предложение LIMIT или подобное. GROUP BY также может вызвать разницу.

Источник

Смотрите ответы по источнику внизу.

Я предлагаю вам использовать

MySQLi http://php.net/manual/en/book.mysqli.php

или же

PDO_MySQL http://php.net/manual/en/ref.pdo-mysql.php

для обновленного метода доступа к базе данных, так как ваш метод устарел в PHP 5.5.0

Другие вопросы по тегам