PDA

Просмотр полной версии : [Вопрос] MySQL



newbie01
25.02.2016, 10:43
Подскажите я правильно всё сделал проверка на подключение а базе данных. Работает вроде всё нормально но если оффнуть денвер то при запуске сервера выдаёт оба сообщения, расскажите что я сделал не так.




if(mysql_errno(MySQL) != 0) print("Подключиться к базе не удалось - " MySQL_DATABASE);
if(mysql_errno(MySQL) != 1) print("Подключение к базе успешно - " MySQL_DATABASE);


- - - Добавлено - - -

А и еще, есть кто то кто сможет подробно рассказать про то как работает mysql и помочь в этом всё!?!?! Если да пишите в личку.

[ForD]
25.02.2016, 12:35
Есть хорошая тема у DeimoS => КЛИК (http://pro-pawn.ru/showthread.php?10548)

Там есть спойлер "Дополнение: Отслеживание качества подключения",думаю это то,что вам и нужно.
Вот собственно сам спойлер:

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


switch(mysql_errno())
{
case 0: print("Подключение к базе данных удалось");
case 1044: print("Подключение к базе данных не удалось [Указано неизвестное имя пользователя]");
case 1045: print("Подключение к базе данных не удалось [Указан неизвестный пароль]");
case 1049: print("Подключение к базе данных не удалось [Указана неизвестная база данных]");
case 2003: print("Подключение к базе данных не удалось [Хостинг с базой данных недоступен]");
case 2005: print("Подключение к базе данных не удалось [Указан неизвестный адрес хостинга]");
default: printf("Подключение к базе данных не удалось [Неизвестная ошибка. Код ошибки: %d]", mysql_errno());
}

Daniel_Cortez
25.02.2016, 13:08
Подскажите я правильно всё сделал проверка на подключение а базе данных. Работает вроде всё нормально но если оффнуть денвер то при запуске сервера выдаёт оба сообщения, расскажите что я сделал не так.




if(mysql_errno(MySQL) != 0) print("Подключиться к базе не удалось - " MySQL_DATABASE);
if(mysql_errno(MySQL) != 1) print("Подключение к базе успешно - " MySQL_DATABASE);

С чего вы решили, что mysql_errno может возвращать только 0 или 1?

newbie01
26.02.2016, 11:38
Мне просто показалось что если всё false (с ошибкой) выводить сообщение, а если ровно true (без ошибки) то выводить другое сообщение. Ну типо mysql_errno сама определяет как-то, вообщем я полный дуб в этом так что не ругайте.

DeimoS
26.02.2016, 11:55
Мне просто показалось что если всё false (с ошибкой) выводить сообщение, а если ровно true (без ошибки) то выводить другое сообщение. Ну типо mysql_errno сама определяет как-то, вообщем я полный дуб в этом так что не ругайте.

Тогда уж код должен выглядеть как-то так

if(mysql_errno(MySQL)) print("Подключиться к базе не удалось - " MySQL_DATABASE);//Если значение, отличное от нуля
else print("Подключение к базе успешно - " MySQL_DATABASE);//Иначе mysql_errno вернул 0 и всё нормально

newbie01
27.02.2016, 13:13
Спасибо за ответ, теперь понял в чём была моя ошибка.