gpt4 book ai didi

php - 通过php在mysql中用空值更新日期时间

转载 作者:行者123 更新时间:2023-11-29 09:35:19 26 4
gpt4 key购买 nike

我正在使用此代码将我的数据时间字段更新为 NULL,PHP版本7.3.7

    if($_POST['value']=='0000-00-00 00:00:00'){
$timestamp=NULL;
}else {
$dateTime = $_POST['value'];
$timestamp = date('Y-m-d H:i', strtotime($_POST['value']));
}
$query="update forms set $_POST[limitInputField]='$timestamp' where formid='$_POST[formId]'";
$result=$dbCnn->query($query)or die($dbCnn->error);

当 $timestamp 为 null 时会出错:

Incorrect datetime value: '' for column farsifor_m.forms.enddate at row 1

但是当我引用“NULL”并删除查询中 $timestamp 周围的引号时,如果$timestamp 为 null 可以正常工作,但如果 $timestamp 值不为 null,则会出现错误。

   if($_POST['value']=='0000-00-00 00:00:00'){
$timestamp="NULL";
}else {
$dateTime = $_POST['value'];
$timestamp = date('Y-m-d H:i', strtotime($_POST['value']));
}
$query="update forms set $_POST[limitInputField]=$timestamp where formid='$_POST[formId]'";
$result=$dbCnn->query($query)or die($dbCnn->error);

最佳答案

学习使用准备好的语句;并且不要注入(inject)后变量来“构建”查询。话虽如此:

您可以使用NULLIF为了方便。在以下示例中,特定值 0000-00-00 00:00:00 将转换为 NULL:

UPDATE forms SET col = NULLIF(:timestamp, '0000-00-00 00:00:00') WHERE formid = :formid

或者您可以简单地:

UPDATE forms SET col = :timestamp WHERE formid = :formid

并使用PHP传递包含字符串或null的变量.

关于php - 通过php在mysql中用空值更新日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57774251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com