За последние 24 часа нас посетили 17495 программистов и 1714 роботов. Сейчас ищут 1679 программистов ...

[Решено] Ошибка базы данных на хостинге

Тема в разделе "PHP для новичков", создана пользователем nzakr, 22 дек 2010.

  1. nzakr

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

    С нами с:
    22 дек 2010
    Сообщения:
    9
    Симпатии:
    0
    Проблема решена.

    Здравствуйте!
    Только что зарегистрировался, потому что пришел в тупик, казалось бы в очевидных вещах.

    Есть сайт; он работает с базой на mysql; его писал частично я, поэтому в коде ориентируюсь.
    Попросили перенести его с хостинга на хостинг. Сделал дамп базы, слил, залил на новый хостинг.
    Файлы/папки перенёс через ftp.

    На старом хостинге:
    база называлась userbase_userbase
    пользователь userbase_admin


    Такая ситуация. На новом хостинге:
    база userbasen_userbase
    пользователь userbase_admin

    В php поменял подключение к базе и имя пользователя на новые; подключение проходит; но при работе с базой, в частности при использовании кода:
    PHP:
    1. $result=mysql_query ("SELECT * FROM  userbasen_userbase.general WHERE id = '$i' ");
    2. $row = mysql_fetch_array ($result);
    На строке 2: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/site/public_html/general.php on line 2

    На локалхосте (денвер) все работает слил базы с хостинга, файлы скачал по ftp. Хостер, если важно - hostpro.com.ua. К хостеру претензий не имею, уверен, я где-то напортачил.

    Подскажите, где я допускаю (я уверен что глупую) ошибку?

    Изменил все имена/ссылки на простые, не указывающие на сайт
     
  2. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    я бы посоветовал создать файл test.php, внутри которого будет простейшее подключение к базе данных и одна выборка с выводом результатов в браузер - для проверки того, что введённые данные для соединения с базой корректны, и что само соединение происходит нормально.
    Небольшой файл отлаживать легче, чем систему.
     
  3. Зверь

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

    С нами с:
    2 ноя 2010
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Екатеринбург
    Может стоит не указывать в запросе базу?
    [sql]$result=mysql_query ("SELECT * FROM general WHERE id = '$i' ");[/sql]
     
  4. nzakr

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

    С нами с:
    22 дек 2010
    Сообщения:
    9
    Симпатии:
    0
    Зверь, не имеет значения, всё равно не работает. Ошибка та же.


    Gromo, меня волнует вопрос: что в настройках Денвера позволяет данной конструкции работать, почему же на хостинге выдается ошибка? Возможно что-то в конфигах, например .htaccess, configs.php... Я уже 5ый день теряюсь в догадках. Писать код заного не хочется.
     
  5. karlozzz

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

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    1) подключение к бд
    2) выведи запрос и в админке попробуй его вручную выполнить (пхпмайалмин например)
    3) дальнейшие действия в зависимости от найденных ошибок
     
  6. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    1)Что возвращает mysql_error?
    2)Внесены ли записи в базу?
     
  7. nzakr

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

    С нами с:
    22 дек 2010
    Сообщения:
    9
    Симпатии:
    0
    karlozzz, подключается к бд, там стоит проверка на подключение, она выдает TRUE. Запрос работает. Дальнейшие действия: код поменял, теперь выглядит
    PHP:
    1.  
    2. for ( $i=1 ; $i<=6  ; $i++ )
    3. {
    4.     $result=mysql_query ("SELECT * FROM  general WHERE id > 0");
    5.         $row = mysql_fetch_array ($result);
    6.         print ( ... );
    7. }
    8.  
    В phpmyadmin sql-функция SELECT * FROM general WHERE id > 0 выдает нужное кол-во строк таблицы (то есть 6)


    Volt(220) 1046: No database selected. Записи внесены. По коду ошибки mysql понял куда копать...

    updated: 1044: Access denied for user 'userbasen_admin'@'localhost' to database 'userbasen_userbase'
    Пользователь с ошибкой, очевидно...

    updated 2: Создал нового пользователя, переписал php код и всё равно выдает такую же ошибку. В сипанели всё верно вроде бы...
     
  8. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    У пользователя userbasen_admin нет прав на базу данных userbasen_userbase.
    Надо смотреть настройки пользователей MySQL.
     
  9. nzakr

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

    С нами с:
    22 дек 2010
    Сообщения:
    9
    Симпатии:
    0
    Volt(220), спасибо. Написал в техпоодержку хостинга, сделали права, всё работает.

    Не знаю точно правил, но тему можно закрыть, проблема решена.