php - foreach 循环仅更新表中最后一个值 3 次

标签 php mysql

See this picture of my page 这是使用 foreach 循环更新表的代码。但它更新了最后一个值三次,即 POST[s3_name]

<?php
$names = [$_POST['s1_name'], $_POST['s2_name'], $_POST['s3_name']];
$query = "update students SET Name=:Name WHERE ProjectID='$id'";


foreach ($names as $name) {
try
{
    $stmt = $conn->prepare($query);  
    $stmt->bindParam(':Name', $name);
    $result = $stmt->execute();
    $msg = "Record updated";
}
catch(PDOException $ex)
{  
   $msg = $ex -> getMessage();
}
}

最佳答案

你可以从某处获取 id 并循环它。像这样的事情

$names = [
    ['id' => 1, 'name' => 'name1'],
    ['id' => 2, 'name' => 'name2'],
    ['id' => 3, 'name' => 'name3']
];


foreach ($names as $name) {
    try {
        $query = "update students SET Name=:Name WHERE ProjectID=:Id";

        $stmt = $conn->prepare($query);  
        $stmt->bindParam(':Name', $name['name']);
        $stmt->bindParam(':Id', $name['id']);
        $result = $stmt->execute();
        $msg = "Record updated";
    } catch(PDOException $ex) {  
        $msg = $ex -> getMessage();
    }
}

关于php - foreach 循环仅更新表中最后一个值 3 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50838256/

相关文章:

php - 在 codeigniter 中使用 foreach 循环获取单个值

php - 通过 HTML/PHP 使用 htaccess 自定义登录

php - nginx 无法加载索引文件

php - SQL 预定义行的最大值

mysql - 显示数据库中的数据

php - 按与字符串匹配的字段排序

php - 如何从 Controller 获取两个对象结果以在 Laravel5 中查看

php - Codeigniter - 只允许特定用户编辑/删除帖子

mysql - 从单个结果返回 SET 作为多行

mysql - 对 mysql 中的查询运行查询