Комментарии 27
Внезапно и в тему, я лично очень рад этой новости, спасибо.
+1
Проблема с IIS6? Вы меня пугаете мне только сегодня пришлось проект перенести с IIS7 на IIS6. Насколько серьезные проблемы со стабильностью и есть ли может какие решения? А то это администрация города, они меня загрызут если этот драйвер будет падать. А пока стояло на 7 ни разу не наблюдал ни каких происшествий с этим драйвером.
+2
Да, были проблемы со стабильностью под IIS6. PHP падал несколько раз в минуту в 500 ошибку в произвольных местах, закономерность я не выявил. Тестировал на двух серверах под Windows server 2003 и IIE6.
Решений я к сожалению не знаю. На живом сервере у нас IIS7.
Решений я к сожалению не знаю. На живом сервере у нас IIS7.
+1
А зачем переносить проект с IIS7 на IIS6?
0
При возникновении блокировки (deadlock), у нового драйвера нет удобного механизма обхода такой ситуации;
Обходное решение — использовать PHP функцию sleep() или usleep() и, при возникновении блокировки и через пару секунд попробовать выполнить запрос снова.
можно пример :)
Обходное решение — использовать PHP функцию sleep() или usleep() и, при возникновении блокировки и через пару секунд попробовать выполнить запрос снова.
можно пример :)
0
Примерно так:
<?php
private function query($query) {
...
...
$qlink = sqlsrv_query($this->connectionlink, $query);
if (!$qlink) {
$errNumber = $this->getErrorCode(); // получаем номер ошибки
// deadlock
if( $errNumber == 1205
&& ( ($this->deadlockRetryCount && $this->deadlockRetryCount >= $this->deadlockRepeatCount+1) || $this->deadlockRetryCount == -1)) {
$this->deadlockRepeatCount++; // число повторений
if($this->deadlock_retry_timeout) sleep($this->deadlock_retry_timeout); // ждем
return $this->query($query); // пробуем еще
} else {
// тут вызываем обработчик ошибок
}
}
return 0;
}
private function getErrorCode() {
$errNumber = 0;
$errors = sqlsrv_errors();
if(is_array($errors)) {
$lastError = end(array_keys($errors)); // берем последнюю ошибку
$err = (int)$errors[$lastError]['code'];
}
return $errNumber;
}
?>
0
Ещё благодаря усилиями MS этот драйвер и в adodb добавили.
0
Мы используем в своем проекте почти уже год. Все работает стабильно, мелкие проблемы обходятся. За статью спасибо, хоть и так это знал :)
+1
Мелкософт в своем стиле…
Полное отсутствие поддержки под *nix системами
Полное отсутствие поддержки под *nix системами
-3
НЛО прилетело и опубликовало эту надпись здесь
Право же, такие линуксоиды меня восхищают.
Сначала твердим что:
MS — дерьмо, MS SQL — дерьмо, Linux — супер.
Потом хотим получить в супер Linux'e поддержку дерьма дерьмом? Вам его так сильно не хватает?
Сколько вам килограмм выслать? :)
Сначала твердим что:
MS — дерьмо, MS SQL — дерьмо, Linux — супер.
Потом хотим получить в супер Linux'e поддержку дерьма дерьмом? Вам его так сильно не хватает?
Сколько вам килограмм выслать? :)
+3
все очень просто: «умный» заказчик хочет чтобы БД было именно на MS SQL + БД должно быть на отдельном сервере.
Вопрос: зачем мне для LAMP виндовый сервер? разве нельзя выпустить so под *nix?
Ответ: MS «отличные ребята», поэтому максимально делают привязку к своему «хорошему» софту (когда у самих почтовый сервер на *nix, по крайней мерее год назад был так точно)
Вопрос: зачем мне для LAMP виндовый сервер? разве нельзя выпустить so под *nix?
Ответ: MS «отличные ребята», поэтому максимально делают привязку к своему «хорошему» софту (когда у самих почтовый сервер на *nix, по крайней мерее год назад был так точно)
-1
Либо вы хреновый специалист, либо заказчик действительно умный (без кавычек). Впрочем возможны сразу оба варианта.
Обычно такие требования возникают когда существует корпоративное приложение и хотят сделать ряд функций к нему через веб-интерфейс. И в этом случае это ваши личные проблемы, что вы не в состоянии реализовать его, к примеру, с использованием SharePoint или просто .NET. Именно оттуда и ростут ноги.
Убедить заказчика в необходимости именно LAMP вы смогли, но теперь мучаетесь и страдаете проклиная MS, хотя виноваты вы.
Обычно такие требования возникают когда существует корпоративное приложение и хотят сделать ряд функций к нему через веб-интерфейс. И в этом случае это ваши личные проблемы, что вы не в состоянии реализовать его, к примеру, с использованием SharePoint или просто .NET. Именно оттуда и ростут ноги.
Убедить заказчика в необходимости именно LAMP вы смогли, но теперь мучаетесь и страдаете проклиная MS, хотя виноваты вы.
0
А завернуть это также под freetds реально?
А то ситуация «приложение под *nix, БД — MS SQL» таки иногда встречается.
А то ситуация «приложение под *nix, БД — MS SQL» таки иногда встречается.
0
К сожалению при использовании этой библиотеки сталкиваюсь с ошибкой:
Из-за этого пока приходится отказаться от значительного прироста скорости версии 5.3.
Кто-нибудь сталкивался?
[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
[message] => The SQL Server Driver for PHP requires the SQL Server 2008 Native Client ODBC Driver (SP1 or later) to communicate with SQL Server. That ODBC Driver is not currently installed. Accessing the following URL will download the SQL Server 2008 Native Client ODBC driver for x86: go.microsoft.com/fwlink/?LinkId=137108
Из-за этого пока приходится отказаться от значительного прироста скорости версии 5.3.
Кто-нибудь сталкивался?
0
Да, разумеется. Одно но: веб с php и mssql на разных серверах (Windows). Native SQL Client на веб-сервере установлен, все 4 протокола активны.
Уверен, что необходимо что-то включить, но не знаю что.
Уверен, что необходимо что-то включить, но не знаю что.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Сравнительный обзор Microsoft SQL Driver for PHP