[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема PHP и MSSQL
Skynet
Здравствуйте, может я найду решение на Вашем форуме...


Краткое описание ПО сервера:
MS Windows Server 2003 ED SP2
MS SQL Server 2005
Apache 2.2.4
PHP 5.2.3



PHP соединяетя с MSSQL при помощи ntwdblib.dll, который нужно положить в c:\windows\system32
так же подгружаем в php.ini php_mssql.dll - это можно увидеть при помощи функции phpinfo

ntwdblib.dll - версия файла 2000.80.2039.0 - взята из MSSQL 2000

начинаем конект

$session = mssql_connect('localhost', 'sa', 'passw');
if (!$session) {echo "Нельзя установить соединение с сервером"; exit;}


И при этом выскакивает дебагер Visual Studio и орет об ощибке в http.exe (файл Apache)
Вообщем код ошибки всегда разный. Нажимаем на кнопку Отмена (не дебагить файл), останавливаем Apache, стартуем Apache, конектимся снова и таже ошибка (но код другой).
Когда вот так помучаешся раз 20-100 то заработает до первой остановки Apache или перезагрузки сервака

Я уже облазил и php.net но все что там описано мне не помогло.

ПОМОГИТЕ ПОЖАЛУЙСТА, СРОЧНО НУЖНО.

sunny
существует аналогичная проблема

Краткое описание ПО сервера:
MS Windows Server 2003 ED SP2
MS SQL Server 2005 Enterprise Edition 9.00.1399.06
Apache 2.2.8
PHP 5.2.5

ntwdblib.dll - 8.00.194

в дебагере завершается с сообщением об ошибке
Неуправляемое исключение в "0x7333f15a (ntwdblib.dll)" в "httpd.exe": 0xC0000005: Нет доступа при чтении "0x0129ffff".

стек вызовов

> ntwdblib.dll!dbgetmaxprocs() + 0x3a байт
[Указанные ниже кадры могут быть неверны и (или) отсутствовать, символы для ntwdblib.dll не загружены]
ntwdblib.dll!dbdatecrack() + 0x4d05 байт
ntwdblib.dll!dbsetlname() + 0x3132 байт
ntwdblib.dll!dbresults() + 0x341 байт
ntwdblib.dll!dbopen() + 0xdfe байт
php_mssql.dll!get_module() + 0x146c байт
05fe0059()
ntdll.dll!RtlAllocateHeap() + 0x126 байт
msvcrt.dll!malloc() + 0x6c байт

т.е. ошибка возникает при вызове ntwdblib.dll!dbgetmaxprocs()

из описания следует
dbgetmaxprocs
$maxprocs = dbgetmaxprocs()
Returns the maximum number of connections you can have open simultaneously in your script. You can set this value with dbsetmaxprocs.

дальше не знаю куда копать, ладно было бы постоянно, а то apache повыпендирвается а потом раз и все работает, до первого перезапуска сервера sad.gif
---------------------------------------------------------------------------------------
раньше ставил все это дело на XP, за исключением что MSSQL 2005 была developer edition не зарегистрированное и все работало без ошибок


Anuxienux
Говнософт, я про MSSQL...
Basili4


Тут уже эту проблему решали http://phpforum.ru/index.php?showtopic=31975&hl=mssql

_____________
Цитата
От постоянного сидения рядом с клавиатурой начинает болеть спина.


Делаю сайты, пишу скрипты php, js.
Savax
У меня тоже были некоторые проблемы при попытке подключить к php mssql.
Помогло следующее:

У меня MS Seven
Apache 2.2.15
php версии 5.2.13, Thread Safety - enabled
Microsoft SQL Express Server 2008

-зашел по ссылке http://windows.php.net/download/#php-5.2-ts-VC6-x86
-скачал zip файл согласно своей версии php
-из архива вытащил два файла ntwdblib.dll и php_mssql.dll (из папки ext)
-скопировал эти файлы в директорию своего php (файл php_mssql.dll должен находиться в папке ext)
-убеждаюсь, что mssql в настройках php есть, запустив скрипт на сервере:
<?php
phpinfo();
?>
-пробую прицепиться:

<?php
// Настройки соединения с базой данных
$server = ".\SQLExpress";
$user = "sa";
$password = "*******";

// открываем соединение с MSSQL
if ( !$sql = mssql_connect($server, $user, $password) ) {
echo ("Не удалось соединиться с сервером SQL !!!");
} else {
echo ("Удалось соединиться с сервером SQL !!!");

// закрываем соединение
mssql_close($sql);
}
?>
Savax
Да, чуть не забыл:

необходимо еще предварительно файл ntwdblib.dll (из архива) скопировать в директорию C:\Windows\System32, если система находиться на диске C.

На этом Все, удачи!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.