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