Ich versuche, ein paar Zeilen in eine MSSQL-Server-Datenbank über Zend \ Db-Komponente einzufügen. Einige Felder enthalten Datumsangaben im deutschen Format, also TT.MM.JJJJ, aber SQL Server erwartet JJJJ-MM-TT. Es gibt die Option SET DATEFORMAT DMY, die mein Problem über SQL Management Studio löst. Aber in PHP und mit Zend \ Db muss ich diese Anweisung vor jede INSERT-Anweisung setzen. Keine Ahnung warum? Gibt es keine Möglichkeit, dies für eine ganze Sitzung festzulegen?Zend Db benötigt dateformat für jede einfügen Abfrage
Beispiel:
// $this->db is an instance of \Zend\Db\Adapter\Adapter
$this->db->query("SET LANGUAGE German;")->execute();
$this->db->query("SET DATEFORMAT dmy;")->execute();
$sql = "INSERT INTO {$table}(";
...
$statement = $this->db->query($sql);
$result = $statement->execute();
Ergebnis:
Statement could not be executed (22007 - 241 - [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Conversion failed when converting date and/or time from character string.)
jedoch, wenn ich schreibe:
$sql = "SET DATEFORMAT DMY; INSERT INTO {$table}(";
es funktioniert.
Irgendwelche Vorschläge, was falsch ist oder was ich ändern muss? Vielen Dank!