【问题标题】:How do I get the rows affected by a MySQL query in PHP?如何在 PHP 中获取受 MySQL 查询影响的行?
【发布时间】:2018-05-13 23:15:44
【问题描述】:

在 PHP 中,如果我使用 mysqli_stmt_execute 执行如下查询:

UPDATE users 
SET hair_color = 'brown' 
WHERE height > 180;

如何确定表中的哪些行实际更新并受查询影响?

请注意,我希望仅在 PHP 中解决这个问题,而不使用数据库触发器等。非常具体地说,这个问题的出现是因为我们试图从我们的数据库中删除所有触发器。

【问题讨论】:

标签: php mysql mysqli sql-update rows


【解决方案1】:
$string="UPDATE users SET hair_color = 'brown' WHERE height > 180";
//Update Query String which will perform in update query

$update_query=mysqli_query($connection,$string);
//by this we are actually running our update queries.    

$total_affected_rows=mysqli_affected_rows($con); 
//By this line you will get total affected rows

//if you need to select and show all the affected rows then you can make a 
//query

$sql=mysqli_query($con,"SELECT * FROM users WHERE height > 180");

【讨论】:

  • 将此标记为正确答案,因为这是在不使用数据库触发器的情况下处理此问题的唯一建议方法。需要注意的是,与 UPDATE 具有相同 WHERE 子句的 SELECT 语句可以在 UPDATE 之前或之后执行。谢谢。
【解决方案2】:

您可以使用mysqli_stmt_affected_rows() 获取受影响的行

在这里查看http://php.net/manual/en/mysqli-stmt.affected-rows.php

【讨论】:

    猜你喜欢
    • 2010-11-08
    • 1970-01-01
    • 2019-02-19
    • 2019-05-23
    • 2018-06-10
    • 2013-02-16
    • 2011-05-08
    • 1970-01-01
    相关资源
    最近更新 更多