首页 > 解决方案 > MySQL 更新查询正在更新除日期以外的所有字段(使用 PHP)

问题描述

当有人订阅我的网络应用程序时,我有一个简单的更新查询,更新他们的许可证详细信息。

最近我对此做了一些小改动,但它已经停止工作(我认为这些是相关的,但实际上并没有设法证明这一点) - 我尝试扭转我所做的一切,但似乎无济于事。

由于某种原因,更新成功运行并且所有字段都更新了,除了expiry字段。

我将我的 sql 查询写入日志文件,并将其复制到 phpmyadmin 命令行中,它完全按预期工作。

[结果是:

UPDATE License 
   SET type='Full'
     , payer_id = 'XXXXXXX'
     , gross = 'XXXX'
     , payer_email = 'XXXXXXX' 
     , license_start = '2019-08-21 14:46:17'
     , expiry = '2019-09-21'
     , product = 'MON'
     , stripe_id = 'XXXXXX' 
 WHERE user_id = XXX

这对我来说似乎很好

我已经调整了格式,撇号,我什至只是在“2019-12-10”这样的日期中输入了一个日期,但它仍然不会通过 mysqli 查询进行更新。我也尝试过expiry= $start,它需要截断,但应该可以工作......仍然只是不更新​​该字段。

$expiry = date("Y-m-d", strtotime("+$couponmonths months", strtotime(date("Y-m-d H:i:s",$expiryts))));
$start = date ("Y-m-d H:i:s");
$sql = "UPDATE `$license_table` SET `type`='Full', `payer_id`='$subid', `gross`='$price', `payer_email`='$email', `license_start`='$start', `expiry` = '$expiry', `product`='$product_name', `stripe_id`='$stripeid' WHERE `user_id`=$userid";
    }
...
if (mysqli_query($connection,$sql) === TRUE) {...}

标签: phpmysql

解决方案


感谢那些试图提供帮助的人。我现在通过创建一个名为expiry_dateinstead of的新列expiry,将数据复制到新列并更新所有引用来解决这个问题。

感觉好像我还没有解决问题所在,但我至少让它再次工作。感觉专栏已经决定通过 PHP 接受更新——不确定这是否可能???

当我发送一个查询说只更新此列时,我决定尝试这种做法,但它仍然没有用......疯狂!

如果有解释,我很想听听解释,但很高兴现在让它工作。


推荐阅读