PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Когато извиквам DB::select защо получавам съобщение Връзката е нулирана?

Сложната част от това е упоритият отказ на браузъра да разкрие каквато и да е форма на съобщение за грешка. Когато това се случи, обичам да отида на командния ред и да го пробвам, като по този начин елиминирам уеб сървъра като променлива.

От чата научихме, че командният ред показва грешката според очакванията, но не го прави по изящен начин:грешката е изведена и скриптът е спрян. Това е сериозен срив, който не се дължи на уеб сървъра.

С въвеждането на \Throwable , сценариите, при които PHP умира трудно, стават все по-малко и все по-отдалечени. И така, в опит да поемем дишането на PHP, внедрихме register_shutdown_function който изтегли error_get_last в опит да разбера какво е било казано точно преди взривяването, ако изобщо има нещо.

Това разкри накратко съобщението за грешка в браузъра (този път използвайки различен браузър). Това обаче не беше повторимо. Прозрението в този момент беше кеширане:composer dump-autoload коригира проблема!

Подозирам, че се е случило следното:

  • Eloquent хвърли изключение
  • PHP пускаше това чрез класовете за обработка на изключения на Laravel
  • В някакъв момент PHP се опита да зареди клас, който не беше в автоматичното зареждане
  • PHP се срина тежко (това е един от случаите, при които PHP 7.0 се спасява)

Чрез стартиране на composer dump-autoload , всички „липсващи“ класове бяха включени в обсега на автоматичното зареждане и при нов опит се получи правилната кодова последователност.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изхвърлянето на Postgresql създава ли последователности, които започват с - или след - последния ключ?

  2. ГРЕШКА на PostgreSQL:подзаявка в FROM не може да препраща към други отношения на същото ниво на заявка

  3. Насочена ациклична графика:намерете всички пътища от конкретен възел

  4. Дали използването на Dev/Test RDS е лоша идея за вашия проект пред Production RDS?

  5. Spring Boot - Едно и също хранилище и един и същ обект за различни бази данни