TL; DR: ошибка может быть вызвана, если в требуемом файле возникает исключение / ошибка.
На самом деле сообщение об ошибке полностью вводило в заблуждение.
PHP обнаружилфайл.PHP скомпилировал файл.PHP выполнил файл.
Но файл default.php также загружает другой файл для поиска класса:
$List_of_branch_objects = branch::read_branches_from_database();
Этот класс загружает другой класс для запроса базы данных.
$result = database_wrapper::instance()->run($sql_query);
database_wrapper
использует конфигурацию (см. Ниже).Но $config['database_host']
был установлен неправильно.Поэтому соединение с базой данных не удалось.Но единственная ошибка, которую дал мне PHP, заключалась в том, что No such file
.
public static function instance() {
if (self::$instance === null) {
self::$instance = new self;
}
return self::$instance;
}
function __construct() {
global $config;
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::ATTR_EMULATE_PREPARES => FALSE,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
);
$this->database_host = $config['database_host'];
$this->database_name = $config['database_name'];
$this->database_port = $config['database_port'];
$this->database_user_name = $config['database_user'];
$this->database_password = $config['database_password'];
if (!empty($this->database_port) and 3306 != $this->database_port) {
$port_string = 'port=' . $this->database_port . ';';
} else {
$port_string = '';
}
$dsn = 'mysql:host=' . $this->database_host . ';' . $port_string . 'dbname=' . $this->database_name . ';charset=utf8';
$this->pdo = new PDO($dsn, $this->database_user_name, $this->database_password, $options);
}
Мне было страшно искать источник ошибки, потому что она была на рабочем сервере.Он прекрасно работал в папке тестирования на той же машине с тем же PHP и apache.