gpt4 book ai didi

php - Mysql 5.7.11 - 如何管理 php 类中的空日期

转载 作者:行者123 更新时间:2023-11-30 22:14:59 28 4
gpt4 key购买 nike

我今天升级了 mysql,我的类中的大部分“添加”函数现在都出错了。

这是我的 PHP 类之一的示例:

class A
{
private $date_plouf;

...

public function add()
{
$db = databaseManager::getDb();
$requete = "INSERT INTO table_A (date_plouf) VALUES (:date_plouf)";
$stmt = $db->prepare($requete);
$result = $stmt->execute(array('date_plouf'=>$this->date_plouf));
}
}

在我的 mysql 更新之前,如果 $date_plouf 为空,请求是:

INSERT INTO table_A (date_plouf) VALUES  ('');

那工作正常。但现在不是了。现在我有一个错误:

Incorrect date value: ''

因此,我尝试更改 sql_mode 全局变量。

我改变了:

STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER

对于:

STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER

但它并没有改变任何东西。

我试图将此日期时间字段的默认值放入数据库中以获取 0000-00-00 00:00:00 但它也不起作用。

我找到的解决方案是在我的 php 类中将所有日期值设置为 0000-00-00 00:00:00。但这意味着我将不得不更改所有类(class)。

对此有什么建议吗?

最佳答案

也许您可以简单地检查 date_plouf 是否已设置,如果未设置则输入默认值?

$varDate = !empty($this->date_plouf) ? $this->date_plouf : '0000-00-00 00:00:00';

$db = databaseManager::getDb();
$requete = "INSERT INTO table_A (date_plouf) VALUES (:date_plouf)";
$stmt = $db->prepare($requete);
$result = $stmt->execute(array('date_plouf'=>$varDate));

关于php - Mysql 5.7.11 - 如何管理 php 类中的空日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38682107/

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