подключение к БД

RD
На сайте с 28.01.2008
Offline
2
583

Добрый день!

Если я скажу глупость, сразу прошу прощения! ибо я новичок в этой тебе..

когда я использую этот скрипт у меня все падает.., почему не могу понять...

Подключение к БД есть, админы хостинга подтвердили. Код скрипта правильный. а в чем проблема не могу понять...

<?php

$dblocal="127.0.0.1";
$dbuser="user";
$dbpass="pass";
$dbname="db";
$dbcnx=@mysql_connect($dblocal,$dbuser,$dbpass);


if(!$dbcnx)
{
exit("<p>Извините за временное неудобство.</p><p>В настоящее время сервер базы данных недоступен, поэтому корректное отображение страницы невозможно. </p>");
}
if (!@mysql_select_db($dbname,$dbcnx))
{
exit("<p>error - DB don't acsess</p>");
}
?>

спасибо!

RidD добавил 16.02.2008 в 22:43

После манипуляций - наконец то хоть ошибку получил

1044: Access denied for user 'radmin'@'localhost' to database 'tempdb'

Пользователь прописан в БД. в каком месте надо еще права прописать? используется DirectAdmin в качестве панели.

RidD добавил 16.02.2008 в 23:06

вообщем нашел! все ок.

[Удален]
#1

По-моему exit(...) надо заменить на die(....), т.к. exit - это просто завершение сценария, а die завершение сценария с выводом информации.

VS
На сайте с 31.01.2008
Offline
11
#2

На моем хостинге такое тоже не работало, пока в $dblocal запись "127.0.0.1" ("localhost" тоже не прокатывало) заменил на имя сервера базы. Образец: $dblocal="base_name.mysql.my_hosting.ru";

Dreammaker
На сайте с 20.04.2006
Offline
569
#3
nikitian:
По-моему exit(...) надо заменить на die(....)

это эквиваленты.

И вообще, ТС уже пообщался с собой и нашёл ответ.

А на будущее "собачки" полезны, даже в приведённом примере + при работе с файлами (когда именно нужны приходит с опытом), но они нужны не во время отладки!..

Скорее всего эти "манипуляции" и привели к решению проблем:

RidD:
После манипуляций - наконец то хоть ошибку получил
I
На сайте с 29.04.2006
Offline
135
#4

А самая главная ваша ошибка - это использование @ перед функциями. Уберите и забудьте о них как страшный сон. Именно поэтому вы не видите ошибок..

Лучше всего использовать конструкции вида:


$dbcnx=mysql_connect($dblocal,$dbuser,$dbpass) or die("Ошибка соединения с сервером");

Тогда проблем никогда не будет. Никогда не блокируйте вывод ошибок!!

Отлаживайте. а затем в начале скрипта прописываете:


error_reporting(0);

И ошибок появлятся не будет...

Dreammaker
На сайте с 20.04.2006
Offline
569
#5
ipconfig:
Уберите и забудьте о них как страшный сон.

я бы всё же повторил:

Dreammaker:
(когда именно нужны приходит с опытом), но они нужны не во время отладки!..

Не во всех случаях можно отключить вывод ошибок (недоступность настроек хостинга, нежелание разбираться с настройками заказчиком и т.д.), а избавится от них не всегда можно, например, в случаях работы с файлами, подключении к базе данных и т.д.

В этих случаях пригодится @. Но в подавляющем большинстве - они зло, от которого нужно избавлятся. А во время отладки - они вообще не нужны.

sowich
На сайте с 11.06.2007
Offline
26
#6

mysql_close($dbcnx);

Dreammaker

die() и exit() это не эквиваленты. Никитиан верно написал про их разницу.

Мой блог (http://sowich.info) Пишу скрипты на php, perl - велком!
Dreammaker
На сайте с 20.04.2006
Offline
569
#7

sowich, а если почитать ман, а затем проверить на практике?


<?

echo "что-то!";

exit("Привет!");

echo "проверка!";

?>

update: И собственно к чему первая строчка в сообщении? :)

dkameleon
На сайте с 09.12.2005
Offline
386
#8
Dreammaker:
а если почитать ман, а затем проверить на практике?

Лучше даже сразу такую ссылку дать:

http://ua.php.net/die

:)

Дизайн интерьера (http://balabukha.com/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий