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

PHP操作数据库更新数据时原有日期字段无法修改问题求助

问题解决建议

核心原因

你当前代码的更新逻辑中没有携带日期字段参数,只有首次插入数据时才会写入teamplaydate字段,这是日期无法更新的直接原因。

修复后的代码

if(isset($_POST['productId'])) {
    $productId = $_POST['product'];
    $userId = $_POST['userId'];
    $teamplay = $_POST['teamplay'];
    $date = date("Y-m-d H:i:s");

    if( $database->has('teamplays', [
        'AND' => [
            'productId' => $productId,
            'userId' => $userId
        ]
    ]) ) {
        $database->update('teamplays', [
            'teamplay' => $teamplay,
            'teamplaydate' => $date // 新增这行,更新时同步刷新日期
        ], [
            'productId' => $productId,
            'userId' => $userId
        ]);
    } else {
        $database->insert('teamplays', [
            'teamplay' => $teamplay,
            'productId' => $productId,
            'userId' => $userId,
            'teamplaydate' => $date
        ]);
    }
}

异常排查项

如果修改后仍无法正常更新日期,可按以下顺序排查:

  • 确认数据库teamplays表的teamplaydate字段类型为datetime或timestamp,没有设置只读、不可修改的约束
  • 确认你使用的数据库操作类(从语法判断为Medoo框架)没有配置字段白名单过滤规则,导致teamplaydate字段被拦截未写入更新语句
  • 若字段为timestamp类型,可直接在表结构中设置ON UPDATE CURRENT_TIMESTAMP属性,后续更新其他字段时会自动刷新日期值,无需在代码中手动传参

内容的提问来源于stack exchange,提问作者Today's Acapellas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:06:03