За последние 24 часа нас посетили 17589 программистов и 1934 робота. Сейчас ищут 1117 программистов ...

mysql_select_db

Тема в разделе "PHP для новичков", создана пользователем YulyaT, 11 июн 2012.

  1. YulyaT

    YulyaT Активный пользователь

    С нами с:
    11 июн 2012
    Сообщения:
    52
    Симпатии:
    0
    Пожалуйста помогите!!!
    На сайте freetzi.com создаю базку 12345,
    запускаю скрипт прямо на сайте на создание таблицы users,
    запускаю скрипт на заполнение insert into.
    ПРЯМО НА САЙТЕ такой select * from `users` проходит, всё как должно быть.
    Создаю файл db.php
    Код (Text):
    1. <?
    2. $hostname = 'localhost';
    3. $username = '12345';
    4. $password = 'qwerty';
    5. $dbName = 'users';
    6. $lnk = mysql_connect($hostname,$username,$password)  or die('Not connected : ' . mysql_error());
    7. print "*****".$lnk."---------<br>";
    8. mysql_select_db($dbName,$lnk) or die('Cant use:'.mysql_error());  
    9. mysql_close();
    10. ?>
    Принт проходит:
    *****Resource id #2---------
    А на mysql_select_db слетает
    Cant use:Access denied for user '12345'@'localhost' to database 'users'

    Замена кавычек 0х27 на двойную 0х22 в именах ничего не дает, также не помог вариант с кавычкой 0х60.
    Вариант
    Код (Text):
    1.  
    2. mysql_connect($hostname,$username,$password) OR DIE("1.=".mysql_error());
    3. mysql_select_db($dbName) or die("2.=".mysql_error());
    заканчивается тем же, т.е. коннект проходит, а подсоединение к таблице не проходит:(
    Вариант с заменой localhost на адрес сайта заканчивается
    Not connected : Can't connect to MySQL server on 'ххх.freetzi.com' (111)
    срабатывает die('Not connected : ' . mysql_error())

    Помогите плс, с MySQL+PHP не приходилось работать, только с MSSQL+ASP.
    Заранее всем спасибо!!
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    логин, пароль, права на базу проверь
     
  3. YulyaT

    YulyaT Активный пользователь

    С нами с:
    11 июн 2012
    Сообщения:
    52
    Симпатии:
    0
    Если бы логин и пароль был не правильный слетел бы mysql_connect, согласен?
    Как проверить права на базу на этом сайте при подключении через PHP понятия не имею, в прямую поднятый скрипт работает.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Почему? написано же, что доступ закрыт.

    права и прочее проверяется обычно через phpmyadmin
     
  5. YulyaT

    YulyaT Активный пользователь

    С нами с:
    11 июн 2012
    Сообщения:
    52
    Симпатии:
    0
    Доступ закрыт к таблице, с доступом к базе нет проблем.
    Логин и пароль нужны для доступа к базе, но не к отдельной таблице, нет?
    Если для доступа ко всей базе, то тут все ОК, т.к. mysql_connect проходит.
    Насчет прав, вот что нашлось на сайте:
    Privileges: Select, Insert, Update, Delete, Create, Drop, Alter, Lock_tables, Index, Create_tmp_table, References, Create_view, Show_view
    Currently it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement, manage keys on fields, manage privileges, export data into various formats and is available in 50 languages.

    Т.е. тоже все нормально.
    Где тогда искать не представляю:(
     
  6. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    Нужно учесть:
    1) mysql_connect --открывает соединение с MySQL Server. Логин и пароль нужны для доступа к MySQL Server.
    2) mysql_select_db- делает базу данных текущей активной. Для доступа к базе данных должны быть установлены соответствующие права

    Ваш пример просто говорит:

    1) пользователю $username = '12345' с $password = 'qwerty' разрешен доступ к MySQL Server на localhost
    2) этому пользователю не разрешен доступ к базе данных "users"
    3) таблица "users" это не база данных "users"
    Что делать:
    найти как называется ваша база данных
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.249
    Адрес:
    там-сям
    т.к. вы путаетесь с терминами, спрашиваю: вы как создали базу? через админку хостера, типа "создать базу и пользователя с именем..." ?

    если действительно база называется '12345', сделайте $dbName = '12345';