Работа с MSSQL

Стас

Троечник
Работа с MSSQL

Рад приветствовать всех!
Столкнулся с такой проблемой: Установил на WinXP Apache, PHP, все прописал, как доктор велел. Но страницы не подключаются к MS SQL. phpinfo() говорит, мол, все нормально, но выдается в окне , что не найден драйвер или источник данных ODBC. Следующий мой шаг был убрать ; в
;extension=php_mssql.dll
Тут уж вообще удивительное сообщение увидел: не найдена библиотека 'C:\usr\php\extensions.dll' в то время как я ее вижу. Помогите, как решить эту проблему.
 

Andrew_P

Guest
Проверь в PHP.INI путь
[ЦВЕТОМ=blue]; Directory in which the loadable extensions (modules) reside.
extension_dir = C:/php/extensions/[/ЦВЕТОМ]
и сравни его с тем, где реально лежат DLL's. Поправь его :)
 

Стас

Троечник
Версия Апачи - 1.3.24
РНР - 4.3.1
WIN - XP
Я вот еще что подумал: у нас MSSQL стоит на другом сервере. Может, до кучи, поставить на инетовский MSSQL2000? Или "доставить" ODBC 2.7 ?
 

Стас

Троечник
2 Andrew_P
Все было правильно. Я же писал в вопросе: по этому пути я вижу данный файл. А слэши я и туда наклонял, и сюда :(
 

Andrew_P

Guest
Рестартани Apache...

Все, что для MSSQL надо, это в PHP.INI поправить две строчки:
[ЦВЕТОМ=blue];extension=php_mssql.dll[/ЦВЕТОМ] - раскоментировать
[ЦВЕТОМ=blue]; Directory in which the loadable extensions (modules) reside.
extension_dir = C:/php/extensions/
[/ЦВЕТОМ] - прописать корректный путь

Я сам работаю с MSSQL :)
 

Стас

Троечник
Вот какая картина вырисовывается: когда пишешь
$connect=odbc_connect("localserver", "login", "password") or die ("Капут!");
то все проходит. Когда пишешь имя другого сервера, стоящего в рабочей группе, то он буквально "слепнет". Инетовский шлюз, получается, обязательно должен иметь MS SQL Server в своем составе?
 

Andrew_P

Guest
Делай так:
PHP:
  // Подключаемся к БД:
  @ $db = mssql_connect($host, $login_str, $password_str);
  if (!$db) {
    $err_str  = mssql_get_last_message();
    echo $err_str;

    exit;
  } else {
    mssql_select_db($datebase);
  }
И смотри что за ошибка ;)
 

Стас

Троечник
Рад приветствовать всех!
Теперь началась вторая серия: не понимает кодировки Windows-1251. К примеру пишу:
$zapros="select * from workers where WorkName='".trim($_POST['LoginT'])."'";
$result=mssql_query ($zapros);
$result получается пустой. А вот на тупое select * выдаются символы в ... я даже не могу определить, в какой кодировке. Может, где-то "пнуть" РНР, чтобы понимал кодировку windows?
 

Andrew_P

Guest
PHP прекрасно понимает кодировку 1251 (windows) - просто используй при формировании HTML следующее:
PHP:
<html>
<head>
<title></title>
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
</head>

<body>
...
</body>
</html>
 

Стас

Троечник
Извините, Дамы и Господа , поторопился: нашел ответ в старых темах форума.
Извините, погорячился. Был не прав.
 

Стас

Троечник
Все-таки проблема-то оказывается стоит. Причем довольно крепко. На моей локалке все идет по плану, а когда переносишь на сервер, то он выдает:
UNKNOW():Unable to load dynamiv library: 'C:/php/extensions/php_mssql.dll' - Не найден указанный модуль
Кстати, когда меняешь в extension_dir слэши слева направо, то он также продолжает жаловаться, что не может загрузить библиотеку. Как он, спрашивается, ее не находит, когда этот файл существует, не битый, исправный?
 

Andrew_P

Guest
Не забывай раскоментировать:
[ЦВЕТОМ=blue]extension=php_mssql.dll[/ЦВЕТОМ]
в PHP.INI
 

mav

Новичок
проблема ненахождения библиотеки php_mssql.dll решается очень просто - нужно или sql сервер на машину поставить или клиента для конекта к удаленому серверу... Со вторым не пробовал, а просто так думаю, а у самого проблема разрешилась, когда я поставил MSSQL...
 
Сверху