Forum Webscript.Ru
Программирование => PHP => Тема начата: 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.ini надо смотреть не "отображать все ошибки", а отображать ли ошибки вообще - display_errors
надо сказать, что на работающем сервере эта директива должна быть выключена, чтобы посетители не виедли сообщений об ошибках.
А вот для отладки дома ее можно включить
-
у меня в php.ini
display_errors = On
но проблема не устранена :((((((((
-
а parse errors выводятся на экран?
-
а типа написать:
$cid = mysql_connect("localhost:3306","root","root") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
?
-
ThE0ReTiC:
а типа написать:
dezox:
Если обрабатывать с die(); то сообщения выводятся,но мне не подходит такое.
dezox
Почему не подходит?
-
попробую потелепатировать: может trigger_error() вместо die тебе подойдет (это если ты свой обработчик ошибок используешь)
-
RomikChef: да,parse\'ы выводятся.
ThE0ReTiC: объясню,я не первый день использую php и mysql, и всегда ошибки отображались сами по себе,без die,и mysql_error...
и меня это устраивало,и я хочу понять в чем причина,а исскуственная обработка увеличивает код это раз,и не вчегда точна.(это ИМХО).
Croaker: см.выше.(делаю запрос:$q="select * from table1"; а потом запускаю,оказывается что нету таблицы table1,оно тупо промолчит,а я буду вынужден после коннекта с базой,поставить die,после выборки базы - die,после запуска запроса - die,и всё ради того что бы понять где я поставил лишнюю букову или цифру???
Макс: я не использую свой обработчик.
Люди,поймите плз., я не хочу что-то добавлять в код,после каждой операции,Я хочу понять куда нес того ни сего подевались все эрроры связанные с базой...
Жду понимающего ответа.
-
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);
выводит что-нибудь?
-
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.ini переписал error_reporting ,теперь он у меня не 341,а 2047.
не помогает :\'(
-
напиши вместо этих цыферок нормальные константы
E_ALL
и ПЕРЕЗАПУСТИ АПАЧ после исправления php.ini
и все тебе будет показывать.
(я СПЕЦИАЛЬНО написал тебе несуществующие параметры, чтобы получить сообщение об ошибке. НЕ НАДО вообще трогать данный код. надо его исполнить и сказать, что видно)
-
ясен пень что я написал E_ALL,я сказал о циферках,которые я уже просматриваю через phpinfo().
у меня не апач а iis
RomikChef:
(я СПЕЦИАЛЬНО написал тебе несуществующие параметры, чтобы получить сообщение об ошибке. НЕ НАДО вообще трогать данный код. надо его исполнить и сказать, что видно)
первый раз,я сделал под себя,всё работало.т.е. вывелось кол-во записец.
а с твоим кодом ничего не видно.!
ПУСТАЯ СТРАНИЦА,я повторяю уже это в n\'ый раз.Когда что-то не так,когда должна быть ошибка,НИФИГА НЕ ВЫВОДИТСЯ!!!
-
dezox:
у меня не апач а iis
перестаньте воевать с компьютером - поставьте UNIX :)
-
ThE0ReTiC:
перестаньте воевать с компьютером - поставьте UNIX
фря стоит и так ;-))
просто привык писать под виндой :-))
-
при установленной фре писать под ИИСом ?
это диагноз, батенька.
однозначно.
-
мне так удобнее.
и вообще мы опять от темы отклоняемся :(
-
dezox
просто мы хотим уговорить тебя поставить апаче и не маяться с такими проблемами.
-
dezox
К сожалению, никто из присутствующих не наблюдал такого бага, поскольку на такой кривой конфигурации не работает.
посмотри ини файл сам.
может быть, найдешь специфические настройки, касающиеся вывода варнингов, касающихся модуля mysql
помочь тебе здесь ничем не могут.
Единственная рекомендация, которую тебе здесь дали, тебя не устраивает.
Дверь показать, или сам найдешь?
-
dezox:
Croaker: см.выше.(делаю запрос:$q="select * from table1"; а потом запускаю,оказывается что нету таблицы table1,оно тупо промолчит,а я буду вынужден после коннекта с базой,поставить die,после выборки базы - die,после запуска запроса - die,и всё ради того что бы понять где я поставил лишнюю букову или цифру???
mysql_query() or die ( mysql_error() )
Должно в привычку входить, чтобы не тормозиться на глупых ошибках.