PDA

Դիտել ողջ տարբերակը : PHP և MySQL - ի ERROR-ներ



Tom
28.07.2007, 18:53
Եկեք զրուցենք php-ի error_report-ների կամ mysql_error-ների մասին , լինում է , որ error_report-ը շատ պարզ է բայց լուծումը դժվար է գտնել կամ հակառակ , օրինակ իմ մոտ մի հատ սխալ է գրվում ով կարա ասի թե ինչումն է պռոբլեմը ` Cannot redeclare doit() ... :unsure

Egern.net
28.07.2007, 22:48
ինչքան հասկանում եմ (չգիտեմ ինչքանով եմ ճիշտ), խնդիրն այսպիսին է.
գոյություն ունի մի հատ ֆունկցիա doit() անունով: Հիմա սկրիպտը փորձում է նոր ֆունկցիա ստեղծել` նորից doit անունով, ինչը չի կարելի: Այսինքն` ֆունկցիան "վերահայտարարել" չի կարելի:

Սա կարծում եմ կարող է կախված լինել include() ֆունկցիայի կիրառության հետ: Եթե որևէ PHP ֆայլ մեկ անգամ include է արվել, բոլոր ֆունկցիաները declare են արվել, երկրորդ անգամ նույն ֆայլը include անելուց կարող են առաջանալ նման կոնֆլիկտներ: Դրանից խուսափելու համար կարելի է օգտվել include_once() ֆունկցիայից...

Անկեղծ ասած սա սեփական փորձից չեմ ասում, դրա համար վստահ չեմ, որ լրիվ ճիշտ է...

Tom
29.07.2007, 07:52
Լիքը մերսիներ Egern.net :hi իրոքից , որ էդ ֆայլում նման պրոբլեմ չկար դրա համար չեի տեսել , նույն ֆունկցիան includ արած ուրիշ ֆալի մեջ եր :

Egern.net
29.07.2007, 16:47
խնդրեմ :)

Tom
29.07.2007, 17:59
Մի հատ հետաքրքիր պրոբլեմի հանդիպեցի էս վերջերս , տղերքով chat-եինք գրել , որի մեջ մի php ֆայլը (սա հիմնականում MySQL բազաի հետ եր աշխատում) 5 վարկյանը մեկ կանչվում էր ու տեղադրել եինք Արմինկոյի սեռվեռի վրա , մի գեղեցիկ օր բացում եմ chat-ը տեսնեմ գրված է թե MySQL error-ների շատ լինելու պատճառով cpanel-ը չի թողնում chat-ը աշխատի :o , ասեմ , որ chat-ը 3 օր նորմալ աշխատում եր , հետո ճշտեցինք , որ կաին մանր MySQL error-ներ (որոշ փոփոխականներ մեկ ստանում են արժեք մեկ ոչ ու SQL-ի մեջ են մտնում ) , որոնք ծրագրի աշխատանքին չեր խանգարում , 1 օրից նորից աշխատեց (3օր) , հիմա ինչ եմ ուզում ասել հնարավոր է phpMyAdmin-ով կամ ինչոր SQL հրամանով անջատել MySQL սեռվեռի error-ները , թե mysql_query()-ներս հատիկ հատիկ if(!isset($var)){$query=}else{$query=}-ի մեջ տեղադրեմ:

Egern.net
29.07.2007, 20:55
ինչքան գիտեմ Error Reporting-ը կարգավորվում է MySQL-ի կոնֆիգուրացիոն ֆայլերով, կամ տենց նման մի բան: Իսկ ընդհանրապես անիմաստ SQL query-ներից խուսափելը երբեք վնաս չէ

Tom
30.07.2007, 08:15
Մերսի Egern.net , MySQL-ի config ֆայլերից my-innodb-heavy-4G.ini-ի մեջ գտելեմ 2 հատված իմ մոտի սխալների վերաբերյալ: Առաջինը ասում է , թե ամեն հոստին մաքսիմում քանի սխալ թողնի անել ու հետո բլոկ է անում սեռվեռը , իսկ երկրորդը մանր սխալների warning-ների
անջատելու ձևն է սարքումեմ կամենտարիա (log_warnings-ի դիմացը դնում եմ #) ու էլ չի անհանգստացնում:

# Maximum amount of errors allowed per host. If this limit is reached,
# the host will be blocked from connecting to the MySQL server until
# "FLUSH HOSTS" has been run or the server was restarted. Invalid
# passwords and other errors during the connect phase result in
# increasing this value. See the "Aborted_connects" status variable for
# global counter.
max_connect_errors = 10

# Print warnings to the error log file. If you have any problem with
# MySQL you should enable logging of warnings and examine the error log
# for possible explanations.
log_warnings

Բայց նոր ծրագրեր գրելուց իմ կարծիքով արժի միացնել:

Egern.net
30.07.2007, 11:37
հա երևի էդ են, ես կոնկրետ չգիտեմ :)