[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mssql_select_db
sergeius
всем привет.

подключаюсь с виндового сервера(win 2003St) "1" к другому виндовому (win 2008St) серваку "2", на котором стоит MSSQL 2008 St.
при mssql_connect направляет меня на базу данных по умолчанию для юзера, под которым зашёл. при любой попытке через ПХП сменить базу на этом сервере, будь то mssql_select_db, либо в запросе use *******; - апач подвисает и больше любые операции с mssql не выполняет до ребута.

пробовал менять различные версии ПХП и апача, брал разные версии либы ntwdblib.dll. с правами точно все нормально, т.к. все запросы в базе по - умолчанию выполняются, захожу под sa.

знаю, что есть много других способов подключения к скулю, и я их тестил и они работают, хочу из принципа разобраться почему не работает через штатный mssql_connect, помогите, пожалуйста...sad.gif



Спустя 12 минут, 36 секунд (2.03.2011 - 11:10) Snus написал(а):
sergeius
SELECT * FROM `database`.`pole`

Спустя 18 минут, 3 секунды (2.03.2011 - 11:28) sergeius написал(а):
пробовал.
любое упоминание в запросе о базе выдает тот же результат.

Спустя 33 минуты, 30 секунд (2.03.2011 - 12:01) Snus написал(а):
sergeius
Так может проблема в доступе к этой БД? Проверь, возможно ли подключение с того хоста, с которого ты пытаешься соединиться. По дефолту стоит localhost

Спустя 3 минуты, 3 секунды (2.03.2011 - 12:04) sergeius написал(а):
я подключаюсь к этой базе и выполняю запросы к ней, работает.
фактически, если нужно (хоть и редко, но бывает) выполнить запрос к другой базе, то в настройках скуля меняю базу данных по умолчанию для пользователя, из под которого происходит подключение с ПХП.
так что дело не в правах.

Спустя 1 минута, 57 секунд (2.03.2011 - 12:06) Snus написал(а):
sergeius
Цитата
я подключаюсь к этой базе и выполняю запросы к ней, работает.

Как подключаешься? Ты же в теме написал, что не можешь подключиться...

Спустя 9 минут, 1 секунда (2.03.2011 - 12:15) Guest написал(а):
нет, я не могу сменить базу в коде ПХП/запросе скуля, выполняемом через ПХП.
подключаюсь через
mssql_connect($host, $user, $passwd);

для наглядности:
<?
$conn = mssql_connect($host, $user, $passwd);
mssql_query($query, $conn);
echo mssql_get_last_message();
?>
результатом будет что - то типа:
mssql: Default database has been changed to test.
т.е. запросы к этой самой базе по умолчанию, выставленной в настройках скуля, работают.
если пытаюсь выполнить запрос к другой базе, указанными выше способами, результат... плачевный:(

Спустя 2 минуты, 56 секунд (2.03.2011 - 12:18) Snus написал(а):
Guest
Я правильно тебя понимаю. У тебя БД на разных хостах?

Спустя 9 минут, 3 секунды (2.03.2011 - 12:27) sergeius написал(а):
на одном хосте разные базы.
кстати, проблема замечена только при подключении к этому серверу "2".
есть другие скуль-серваки, там всё работает как надо.

Спустя 5 минут, 44 секунды (2.03.2011 - 12:33) Snus написал(а):
<?php
mssql_connect($host, $user, $passwd);
mssql_select_db('database1');
mssql_query($query1);
mssql_select_db('database2');
mssql_query($query2);
mssql_close();
?>

Так не работает?

Спустя 1 час, 5 минут, 48 секунд (2.03.2011 - 13:39) sergeius написал(а):
нет, опытным путём доказано, что падает на mssql_select_db.

Спустя 20 минут, 43 секунды (2.03.2011 - 13:59) Snus написал(а):
sergeius
Фантастишь smile.gif

Спустя 23 минуты, 18 секунд (2.03.2011 - 14:23) Dezigo написал(а):
Какая версия php?

Спустя 1 минута, 52 секунды (2.03.2011 - 14:25) sergeius написал(а):
устал уже от сверхестественного...
есть мысли - то какие - нибудь? smile.gif

да, чуть не забыл... на вебсервере "1" при этом вылетает апачная ошибка приложения:
"Инструкция по адресу "0x73341c26" обратилась к памяти по адресу *бла-бла*. Память не может быть "read"."
версия ПХП 5.2.12.
пробовал ставить разные версии, результат аналогичный.

Спустя 18 минут, 3 секунды (2.03.2011 - 14:43) Welcome написал(а):
А если попробывать

mssql_select_db('[database2]');

Спустя 9 минут, 2 секунды (2.03.2011 - 14:52) sergeius написал(а):
не, тоже самое..

Спустя 20 часов, 12 минут, 55 секунд (3.03.2011 - 11:05) sergeius написал(а):
Разобрался, бред какой - то...
не знаю с чем это связано, но если выставить в php.ini
mssql.secure_connection = on ,
а после этого в запросе указывать

$query = "SELECT * FROM [myserver].[dbo].[table]";

, причем именно так, то работает.
mssql_select_db так и не заработал.

если кому интересно или имеется схожая проблема, то мысли вслух:
думаю, проблема с настройками Win Server 2008, но т.к. фаервол отключен, то это либо установленный Symantec Endpoint Protection (corp. Ed.), хотя отключение его службы ничего и не дало, либо хз вообще что...

будут мысли - пишите, пожалуйста... surkov@open.ru

Спустя 6 месяцев, 19 дней, 6 часов, 14 минут, 10 секунд (22.09.2011 - 16:19) Гость_Павел написал(а):
USE [master]
GO
ALTER LOGIN [user] WITH DEFAULT_DATABASE=[database], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
Быстрый ответ:

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