php - 用不同的值更新一个数据库表列
问题描述
我想用最大三个值和最小两个值更新表。如何更新表。我从表单中获取值,三个学生有三个字段。现在,当我在数据库中更新它们时,它们都具有相同的值。现在我正在尝试这个为什么。不知道它是否有效 查看我的页面
$s1_name=$_POST['s1_name'];
$s2_name=$_POST['s2_name'];
$s3_name=$_POST['s3_name'];
$query="update students SET Name=:Name
WHERE ProjectID='$id'
";
try
{
$stmt = $conn->prepare( $query );
$stmt->bindParam(':Name', $s1_name);
$stmt->bindParam(':Name', $s2_name);
$stmt->bindParam(':Name', $s3_name);
$result = $stmt->execute();
$msg = "Record updated";
}
catch(PDOException $ex)
{
$msg = $ex -> getMessage();
}
}
解决方案
它不能以这种方式工作。您这样做的方式将导致查询仅将其更新为$s3_name
.
您必须为每个查询执行 try/catch 语句:
<?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();
}
}
推荐阅读
- javascript - 如何通过javascript更改类的所有元素的字体颜色?
- node.js - 垃圾邮件套接字 io 连接
- codeigniter - 重定向在真实服务器上的 Codeigniter 中不起作用。错误报告但未显示任何错误
- typescript - 为什么不分配它,尽管 Array 是协变的?
- c++ - 带有 shared_ptr 的处理程序中的分段错误
- excel - 带字符串的公式
- azure - 当应用程序在 docker 上运行时,Windows Docker 容器 > 呈现的 PDF 的布局不同
- laravel - 如何安装/使用这个包 = akiyamaSM / larapoll
- python - 用于工作 python 脚本的多输入 PySimpleGUI
- entity-framework - 如何找到财产的持有人