Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Функция mysql_select_db ()
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Функция mysql_select_db ()

Страниц (1): [1]
 

1. SergeantPEPPER - 30 Ноября, 2007 - 19:01:46 - перейти к сообщению
Помогите!!! Плз.
Уже неделю никак не могу разобраться с абсолютно простейшим делом:
Мне нужно загрузить свою базу данных на сервер. Делаю я это без mysql дампа, а прямо на серваке открываю соединение и создаю бд со всеми таблицами.

Соединение с mysql-сервером устанавливается успешно, и создание бд вроде тоже.
Ошибка возникает когда я пытаюсь открыть свою бд функцией mysql_select_db ().

Привожу код:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?  
  3.  
  4. $user = "myuser";  //Пользователь  сервера  баз  данных  
  5. $pass = "mypass";  //Пароль  
  6. $server = "";  //Имя  сервера
  7.  
  8. //Создание  соединения  
  9. $link  =  mysql_connect($server,  $user,  $pass);  
  10. if(!$link) die ("Не  могу  соединиться  с  MySQL");
  11. if ($link) echo ("Соединение установлено.<BR>");
  12.  
  13. $query = "CREATE DATABASE IF NOT EXISTS `etsdb`";  
  14.  
  15. $result = mysql_query($query, $link) or die (mysql_error());
  16.  
  17. if ($result) echo ("База создана.<BR>");
  18.  
  19. $db = "etsdb";  //Имя  базы  данных  
  20. $result = mysql_select_db($db, $link) or die ("Не могу открыть $db:
  21. ".mysql_error());  
  22.  
  23. if ($result) echo ("База открыта.<BR>");
  24.  
  25. ?>
  26.  


Так вот mysql_error () выдает, что я не имею авторизации --- но как? Ведь соединение я установил нормально?!?!?

На самом деле приведенный код не мой (у меня он был разбит на 2 файла, но в принципе алгоритм такой же...). А выбрал я именно его потому, что он оказывается абсолютно работоспособным (проверено) , если заменить название бд с etsdb на base!!!
Я просто в изумлении :0 - а в качестве параметров к функции mysql_select_db и вышестоящего sql запроса - я перепробовал абсолютно все мыслимые комбинации - с одним параметром, с двумя, с кавычками, без кавычек, с разными типами кавычек.

Обьясните пожалуйста где я ошибся и в чем разница между работающим примером и моим. Заранее спасибо...
2. valenok - 01 Декабря, 2007 - 01:10:53 - перейти к сообщению
возможно у вас нет прав на создание таблиц
или хостер разрешает создавать базы только через его панель с неким префиксом ..\n\n(Добавление)
А текст ошибки вы не привели
3. SergeantPEPPER - 01 Декабря, 2007 - 17:49:33 - перейти к сообщению
mysql_error () действительно выдает сообщение, что у меня нет прав доступа...
НО КАК ЭТО МОЖЕТ БЫТЬ?!?

Ведь у меня получается создать соединение с сервером под моими логином и паролем? Да и тем более (еще раз повторяю) если в коде поменять название базы данных на base, то все будет работать. На самом деле когда я столкнулся с этой ошибкой, то решил взять у знакомого работающий код (который я и привел), в котором я заменил название на etsdb - и все...

А вот про специальное право на создание бд и таблиц я ничего не знаю. Если не трудно - расскажите об этом или киньте ссылку. ...
4. Волк - 01 Декабря, 2007 - 18:30:43 - перейти к сообщению
А бд, к которой вы подсоединяетесь, как называется etsdb или base?
5. SergeantPEPPER - 04 Декабря, 2007 - 17:29:22 - перейти к сообщению
Фу, наконец-то удалось связаться с администратором сервера, с которым я работаю. Меня просветили, что, оказывается, он (ну админ то есть) ограничил права авторизованных пользователей тем, что они могут устанавливать соединение с MySQL сервером (это $link из моего кода) , но не могут создавать новые базы данных. Оказалось, что база данных с названием base просто уже существовала на сервере, поэтому при смене имен бд скрипт становился работоспособным. Теперь просто придется пользоваться чьей-то (уже созданной бд) . Спасибо всем кто откликнулся... А база моя назывлась etsdb... )
6. valenok - 08 Декабря, 2007 - 02:40:21 - перейти к сообщению
у вас нет прав на создание таблиц
Когда ы и идёте на футбол у вас тоже нет прав прыгнуть на поле и погонять мяч, а зайти посидеть, посвистеть и попрыгать можно

 

Powered by ExBB FM 1.0 RC1