私は今日mysqlをアップグレードしました。私のクラスのほとんどの私の 'add'関数はエラーになりました。ここでMysql 5.7.11 - PHPクラスの空の日付を管理する方法
は私のPHPクラスの一つのexempleです:私のmysqlの更新前に
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));
}
}
$date_plouf
が空だった場合、要求されました:
INSERT INTO table_A (date_plouf) VALUES ('');
そして、それが正常に動作しました。もうそうじゃない。
不正な日付値:今、私はエラーを持っている '
だから、私は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
をしかし、それは何も変更されていません。
このdatetimeフィールドのデフォルト値を0000-00-00 00:00:00
のDBに入れようとしましたが、どちらも機能しません。
解決方法私は私のすべての日付の値を0000-00-00 00:00:00
私のPHPクラスに設定することがわかった。しかし、これは私がすべてのクラスを変更する必要があることを意味します。
これに関するアドバイスはありますか?
はい、これは私が考えていたものです。しかし、これは私がすべてのクラスを修正するように強制します。私は、mysql 5.7を設定して日付を= ''に設定する方法があるかもしれないと考えていました。 –