verwalten Ich habe Mysql heute aktualisiert und die meisten meiner Add-Funktion in meinen Klassen sind jetzt fehlerhaft.Mysql 5.7.11 - Wie man leere Daten in PHP-Klasse
Hier ein exemple eines meiner PHP-Klasse ist:
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));
}
}
Vor meinem mysql-Update, wenn $date_plouf
leer war, war die Anfrage:
INSERT INTO table_A (date_plouf) VALUES ('');
Und das funktioniert gut. Aber nicht mehr. Jetzt habe ich einen Fehler:
Falschen Datumswert: ''
Also habe ich versucht, sql_mode globalen Variable zu ändern.
I geändert:
STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER
für:
STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
Aber es ist nicht etwas zu ändern.
Ich habe versucht, den Standardwert dieses Datetime-Feld in DB für 0000-00-00 00:00:00
setzen, aber es funktioniert auch nicht.
Die Lösung ich fand ich alle meine Daten Wert auf 0000-00-00 00:00:00
in meiner PHP-Klasse zu setzen. Aber das bedeutet, dass ich alle meine Klassen wechseln muss.
Irgendwelche Ratschläge dazu?
Ja, das habe ich mir gedacht. Aber das wird mich zwingen, alle meine Klassen zu korrigieren. Ich dachte, dass es vielleicht eine Möglichkeit gibt, mysql 5.7 so zu konfigurieren, dass man ein Datum mit = '' setzt. –