Php 如何从foreach中执行的prepared(update)语句中获取num行

Php 如何从foreach中执行的prepared(update)语句中获取num行,php,mysql,Php,Mysql,想象一下这个代码: if ($_SERVER["REQUEST_METHOD"] == "POST") { if ($stmt = $conn->prepare("UPDATE courses SET courses_price = ? WHERE id_courses = ?")) { foreach ($_POST as $id => $price) { $stmt->bind_param('ii', $price, $id)

想象一下这个代码:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if ($stmt = $conn->prepare("UPDATE courses SET courses_price = ? WHERE id_courses = ?")) {
        foreach ($_POST as $id => $price) {
            $stmt->bind_param('ii', $price, $id);
            $stmt->execute();
        }
        $stmt->store_result();
        if ($stmt->num_rows === 0) {
            echo 'not affected';
        } else {
            echo 'affected';
        }

    }
}
为什么num_行总是返回0?是的,我知道它只计算受保护的行。。一行始终受影响

foreach循环有问题吗?或者有没有其他方法来获取受影响行的数量


什么?这么简单。。。谢谢,你能把它作为答案吗?我会接受的——基金内

根据OP的要求:

num_rows()
用于选择,而不是更新

您要使用的是
受影响的行()

参考资料:

受影响的行()上的手册中:

面向对象风格
int$mysqli->受影响的行

程序风格

int mysqli\u受影响的行(mysqli$link)

num\u rows()
用于选择,而不是更新。您很可能想要
受影响的行()
。什么?这么简单。。。谢谢,你能把它作为答案吗?我会接受的,差不多;-)