You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用下拉列表时SQL Update语句无法更新产品分类问题

问题解决:产品分类无法更新的原因及修复方案

嘿,这问题很常见,我帮你梳理一下问题点和修复步骤:

核心问题:更新逻辑遗漏了分类ID的处理

你的update2.php里完全没处理前端传过来的分类ID(c_id)——既没从POST参数里获取它,也没把它包含到UPDATE的SQL语句中,自然数据库里的c_id字段不会更新。

修复步骤(针对update2.php)

  1. 获取前端传递的分类ID
    在获取$name和$quantity的位置,加上一行代码获取c_id:

    $c_id = $_POST['c_id'];
    
  2. 修改UPDATE SQL语句,加入c_id的更新
    把原来的SQL语句改成包含c_id字段的版本:

    $sql = "UPDATE product set name = ?, quantity = ?, c_id = ? WHERE id = ?";
    
  3. 执行SQL时传入c_id参数
    调整execute的参数数组,把$c_id加进去:

    $q->execute(array($name,$quantity,$c_id,$id));
    

额外小问题:update.php里的数据库连接提前断开

在你的update.php里,你在获取产品详情后立刻调用了Database::disconnect();,但后面获取分类列表的时候还在使用$pdo,这会导致报错!你需要把Database::disconnect();移到页面的最末尾,比如在</form>标签之后:

<?php include 'database.php'; 
$id = $_POST['productId']; 
$pdo = Database::connect(); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$sql = "SELECT * FROM product where id = ?"; 
$q = $pdo->prepare($sql); 
$q->execute(array($id)); 
$data = $q->fetch(PDO::FETCH_ASSOC); 
$name = $data['name']; 
$quantity = $data['quantity']; 
// 这里不要断开连接!
?>
<form id="updateFrom" action="update2.php" method="POST">
<!-- 表单内容保持不变 -->
</form>
<?php 
// 现在才断开连接
Database::disconnect(); 
?>

这样修改之后,产品分类的更新就能正常工作啦!

内容的提问来源于stack exchange,提问作者Αναστασια Όλιβερ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:26:18