PHP/mysql получает количество затронутых строк оператора UPDATE

С php/mysql, как я могу получить количество строк, на которые повлиял запрос?

что я пробовал до сих пор:

$result = mysql_query($q);
mysql_num_rows($result);

но в нем говорится, что Предупреждение: mysql_num_rows(): предоставленный аргумент не является допустимым ресурсом результата MySQL

Ответ 1

если вы используете PDO (который я бы рекомендовал), для прямого запроса exec() возвращает количество затронутых строк. для Подготовленных заявлений существует метод rowCount().

если вы используете mysql-функции, mysql_affected_rows().

EDIT:
похоже, что вы используете mysql-функции. mysql_num_rows, который вы используете, возвращает длину вашего набора результатов (например, для SELECT-Statement). вам нужно использовать mysql_affected_rows (как уже было сказано).

Ответ 2

Вы также можете использовать функцию ROW_COUNT(), например. -

UPDATE table1 SET column1 = 100 WHERE column2 = 10;
SELECT ROW_COUNT();

Из справки - ROW_COUNT() возвращает количество строк, измененных, удаленных или вставленных последним оператором, если это было ОБНОВЛЕНИЕ, УДАЛЕНИЕ или ВСТАВКА...

Ответ 4

зажим,

вам нужно предоставить ресурс mysql_affected_rows, а не запись результата. См. Ссылки, которые другие отправили для дополнительной информации.

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query($q);
echo mysql_affected_rows($link);

Ответ 6

Whe также может сделать это с помощью PDO:

$db = new PDO('', '', '')// your connection
$sql = "UPDATE tb_table SET rowname = value WHERE rowid = 1";
$query = $db->query($sql);
echo $query;