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() возвращает количество строк, измененных, удаленных или вставленных последним оператором, если это было ОБНОВЛЕНИЕ, УДАЛЕНИЕ или ВСТАВКА...
Ответ 3
Вам нужно mysql_affected_rows
Ответ 4
зажим,
вам нужно предоставить ресурс mysql_affected_rows
, а не запись результата. См. Ссылки, которые другие отправили для дополнительной информации.
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query($q);
echo mysql_affected_rows($link);
Ответ 5
http://php.net/manual/en/function.mysql-affected-rows.php
Действительно, просто прочитайте руководство.
Ответ 6
Whe также может сделать это с помощью PDO:
$db = new PDO('', '', '')// your connection
$sql = "UPDATE tb_table SET rowname = value WHERE rowid = 1";
$query = $db->query($sql);
echo $query;