Forum Webscript.Ru

Программирование => PHP => Тема начата: dezox от 21 Августа 2003, 13:19:54

Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: dezox от 21 Августа 2003, 13:19:54
такого никогда не было…
error_reporting(E_ALL);
mysql_connect("localhost:3306","root","root") ;
mysql_select_db("database")  ;
?>

На этот код не выводится НИЧЕГО…В не зависимоти от от того,есть ли база на порту 3306,есть юзер рут с паролем рут,есть ли база database…
Ответ возвращается в виде пустой страницы даже когда все неверно…Если обрабатывать с die(); то сообщения выводятся,но мне не подходит такое.
в php.ini стоит отображать все ошибки и т.д.
Подскажите в чем проблема…
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: Меняздесьдавнонет от 21 Августа 2003, 14:02:35
в php.ini надо смотреть не "отображать все ошибки", а отображать ли ошибки вообще - display_errors
надо сказать, что на работающем сервере эта директива должна быть выключена, чтобы посетители не виедли сообщений об ошибках.
А вот для отладки дома ее можно включить
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: dezox от 21 Августа 2003, 14:42:24
у меня в php.ini

display_errors = On

но проблема не устранена :((((((((
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: Меняздесьдавнонет от 21 Августа 2003, 15:04:34
а parse errors выводятся на экран?
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: ThE0ReTiC от 21 Августа 2003, 15:51:50
а типа написать:

$cid = mysql_connect("localhost:3306","root","root")  or die(mysql_error());
mysql_select_db("database")  or die(mysql_error());



?
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: Croaker от 21 Августа 2003, 15:53:36
Цитировать
ThE0ReTiC:
а типа написать:

Цитировать
dezox:
Если обрабатывать с die(); то сообщения выводятся,но мне не подходит такое.


dezox
Почему не подходит?
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: Макс от 21 Августа 2003, 16:00:47
попробую потелепатировать: может trigger_error() вместо die тебе подойдет (это если ты свой обработчик ошибок используешь)
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: dezox от 22 Августа 2003, 11:35:05
RomikChef: да,parse\'ы выводятся.

ThE0ReTiC: объясню,я не первый день использую php и mysql, и всегда ошибки отображались сами по себе,без die,и mysql_error...
и меня это устраивало,и я хочу понять в чем причина,а исскуственная обработка увеличивает код это раз,и не вчегда точна.(это ИМХО).

Croaker: см.выше.(делаю запрос:$q="select * from table1"; а потом запускаю,оказывается что нету таблицы table1,оно тупо промолчит,а я буду вынужден после коннекта с базой,поставить die,после выборки базы - die,после запуска запроса - die,и всё ради того что бы понять где я поставил лишнюю букову или цифру???

Макс: я не использую свой обработчик.

Люди,поймите плз., я не хочу что-то добавлять в код,после каждой операции,Я хочу понять куда нес того ни сего подевались все эрроры связанные с базой...
Жду понимающего ответа.
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: Меняздесьдавнонет от 22 Августа 2003, 12:08:02
dezox
для того, чтобы понять, где ты поставил лишнюю букву или цифру, надо выводить mysql_error
с die или без.
РНР тебе никогда в жизни не выводил ошибку в ЗАПРОСЕ.
ты определись, что у тебя не работает, а потом спрашивай.

die после коннекта ставят не для того, чтобы ты в цифре ошибался, а для того, чтобы обработать ошибку соединения.
обработать.

Добавлять в код после каждой операции - надо.
вне зависимости от того, выводится у тебя ошибка сама, ли нет.
Эти вещи никак не связаны.

Значит, так.
по пунктам.
Не пропуская:

1. запусти phpinfo()
И посмотри реальные значения этих параметров -
error_reporting
И
display_errors

2. где ты это все запускаешь? Дома или на хостинге?

3. если коннект нормальный, то такой код
$res=mysql_query("select blabla from foobar");
echo mysql_num_rows($res);
выводит что-нибудь?
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: dezox от 22 Августа 2003, 13:00:03
Цитировать
RomikChef:
для того, чтобы понять, где ты поставил лишнюю букву или цифру, надо выводить mysql_error
с die или без.
РНР тебе никогда в жизни не выводил ошибку в ЗАПРОСЕ.
ты определись, что у тебя не работает, а потом спрашивай.


давай лучше сосредоточимся на моей проблеме,а то мы отошли от темы.

Цитировать
RomikChef:
Добавлять в код после каждой операции - надо.
вне зависимости от того, выводится у тебя ошибка сама, ли нет.
Эти вещи никак не связаны.


угу,теперь буду добавлять,ты сначала скажи как сделать чтобы появились нормальные ошибки,а потом я уже буду обрабатывать.


Цитировать
RomikChef:
1. запусти phpinfo()
И посмотри реальные значения этих параметров -
error_reporting
И
display_errors


display_errors=on
error_reporting=341


Цитировать
RomikChef:
2. где ты это все запускаешь? Дома или на хостинге?


дома,всегда пускал дома,и не было проблем




Цитировать
RomikChef:
3. если коннект нормальный, то такой код
$res=mysql_query("select blabla from foobar");
echo mysql_num_rows($res);
выводит что-нибудь?


да,выводит кол-во записей в таблице,но стоит поменять какой-то параметр на не существующий,ответ в виде пустой страницы :(((
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: dezox от 22 Августа 2003, 13:07:00
в php.ini переписал error_reporting ,теперь он у меня не 341,а 2047.

не помогает :\'(
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: Меняздесьдавнонет от 22 Августа 2003, 13:18:07
напиши вместо этих цыферок нормальные константы
E_ALL
и ПЕРЕЗАПУСТИ АПАЧ после исправления php.ini
и все тебе будет показывать.

(я СПЕЦИАЛЬНО написал тебе несуществующие параметры, чтобы получить сообщение об ошибке. НЕ НАДО вообще трогать данный код. надо его исполнить и сказать, что видно)
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: dezox от 22 Августа 2003, 13:47:49
ясен пень что я написал E_ALL,я сказал о циферках,которые я уже просматриваю через phpinfo().

у меня не апач а iis

Цитировать
RomikChef:
(я СПЕЦИАЛЬНО написал тебе несуществующие параметры, чтобы получить сообщение об ошибке. НЕ НАДО вообще трогать данный код. надо его исполнить и сказать, что видно)


первый раз,я сделал под себя,всё работало.т.е. вывелось кол-во записец.
 а с твоим кодом ничего не видно.!
ПУСТАЯ СТРАНИЦА,я повторяю уже это в n\'ый раз.Когда что-то не так,когда должна быть ошибка,НИФИГА НЕ ВЫВОДИТСЯ!!!
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: ThE0ReTiC от 22 Августа 2003, 13:50:18
Цитировать
dezox:
у меня не апач а iis

перестаньте воевать с компьютером - поставьте UNIX :)
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: dezox от 22 Августа 2003, 15:39:44
Цитировать
ThE0ReTiC:
перестаньте воевать с компьютером - поставьте UNIX


фря стоит и так ;-))
просто привык писать под виндой :-))
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: ThE0ReTiC от 22 Августа 2003, 15:50:52
при установленной фре писать под ИИСом ?
это диагноз, батенька.
однозначно.
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: dezox от 22 Августа 2003, 15:54:00
мне так удобнее.

и вообще мы опять от темы отклоняемся :(
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: Макс от 22 Августа 2003, 16:08:12
dezox
просто мы хотим уговорить тебя поставить апаче и не маяться с такими проблемами.
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: Меняздесьдавнонет от 22 Августа 2003, 16:10:48
dezox
К сожалению, никто из присутствующих не наблюдал такого бага, поскольку на такой кривой конфигурации не работает.
посмотри ини файл сам.
может быть, найдешь специфические настройки, касающиеся вывода варнингов, касающихся модуля mysql

помочь тебе здесь ничем не могут.
Единственная рекомендация, которую тебе здесь дали, тебя не устраивает.
Дверь показать, или сам найдешь?
Название: PHP не выводит сообщения об ошибках Mysql
Отправлено: Croaker от 22 Августа 2003, 16:29:55
Цитировать
dezox:
Croaker: см.выше.(делаю запрос:$q="select * from table1"; а потом запускаю,оказывается что нету таблицы table1,оно тупо промолчит,а я буду вынужден после коннекта с базой,поставить die,после выборки базы - die,после запуска запроса - die,и всё ради того что бы понять где я поставил лишнюю букову или цифру???



mysql_query() or die ( mysql_error() )


Должно в привычку входить, чтобы не тормозиться на глупых ошибках.