Я пытаюсь вставить пару строк в базу данных сервера MSSQL через компонент Zend \ Db. Некоторые поля содержат даты в немецком формате, поэтому DD.MM.YYYY, но SQL Server ожидает YYYY-MM-DD. Существует опция SET DATEFORMAT DMY, которая решает мою проблему через SQL Management Studio. Однако в PHP и использовании Zend \ Db я должен поставить это утверждение перед каждым оператором INSERT. Я не знаю почему? Разве нет возможности установить это для целого сеанса?Zend Db требует набора даты для каждого запроса на вставку
Пример:
// $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();
Результат:
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.)
Однако, когда я пишу:
$sql = "SET DATEFORMAT DMY; INSERT INTO {$table}(";
это работает.
Любые предложения, что не так или что мне нужно изменить? Благодаря!