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

mysqli_connect Фатална грешка:изисквам()

Два НАЙ-ГОЛЕМИТЕ проблема с вашия код и вашето "решение":

  1. Имате @ оператор навсякъде. За което имате -1 глас на вашия въпрос. @ оператор е самото зло. ИТ отговаря за празната страница, която виждате.
  2. Избраното от вас лекарство обаче влоши нещата. Това нещо „ИЛИ умри“ не е магическа песен за решаване на всеки проблем с докладването на грешки. И неправилното използване ще доведе до грешки като такъв, който имате. За което имате 1 в съобщението за грешка.

Първо, включването ви е наред, така че оставете го.

За да получите грешка от mysqli, следвайте тези инструкции:

Вместо да добавяте произволно „или умрете“, имате нужда от по-стабилно и полезно решение за докладване на грешки.

Ако използвате mysqli_query() в целия код на приложението, без да го капсулирате в някакъв помощен клас, trigger_error() е добър начин за генериране на PHP грешка, тъй като ще ви каже също файла и номера на реда, където е възникнала грешката

$res = mysqli_query($mysqli,$query) or trigger_error(mysqli_error($mysqli)."[$query]");

във всички ваши скриптове
и оттогава ще бъдете уведомени за причината, поради която обектът не е създаден.(Ако сте любопитни за това or синтаксис, обяснил съм го тук - също така обяснява защо имате (1) в съобщението за грешка)

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

$result = $mysqli->query($sql);
if (!$result) {
    throw new Exception($mysqli->error." [$query]");
}

като изключение ще ви предостави проследяване на стека , което ще ви отведе до мястото, от което е извикана грешна заявка.

Обърнете внимание, че трябва да можете да виждате PHP грешки като цяло. На жив сайт трябва да надникнете в регистрационните файлове за грешки, така че настройките трябва да бъдат

error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set('log_errors',1);

докато на локален сървър за разработка е нормално да правите грешки на екрана:

error_reporting(E_ALL);
ini_set('display_errors',1);

и, разбира се, никога не трябва да използвате оператор за потискане на грешки (@) пред вашите изявления.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Напишете MySQL заявка, за да получите необходимия резултат

  2. MySQL заявка годишна седмица от текущата седмица да започне в четвъртък, да завърши в сряда

  3. проблеми с инсталирането на perl DBI-mysql в windows

  4. mysql проверка на сортиране на таблица

  5. Django, след надстройка:MySQL сървърът е изчезнал