PHP define (), похоже, не работает с include ()

Я пробовал свою руку в OO PHP и в настоящее время имею три файла. У меня есть class_lib.php, который на данный момент имеет только класс базы данных, файл index.php и файл definition.php. Я хочу поместить всю информацию о моей важной базе данных в файл определений. Однако, когда я это делаю, я получаю сообщение об ошибке при попытке подключения к базе данных: «Unkown server DB_HOST». Файл моих определений:

<?php define("DB_HOST","localhost"); define("DB_USER","root"); define("DB_PASS","password"); define("DB_NAME","database"); ?> 

Затем я использую их в индексном файле так:

 include('definitions.php'); include('class_lib.php'); $testing = new databaseServer(); $testing->connect(DB_HOST,DB_USER,DB_PASS,DB_NAME); в include('definitions.php'); include('class_lib.php'); $testing = new databaseServer(); $testing->connect(DB_HOST,DB_USER,DB_PASS,DB_NAME); в include('definitions.php'); include('class_lib.php'); $testing = new databaseServer(); $testing->connect(DB_HOST,DB_USER,DB_PASS,DB_NAME); 

И функция, которую я использую в классе databaseServer, такова:

  function connect($host,$user,$pw,$db) { $this->con = mysql_connect($host,$user,$pw); if (!$this->con) { die('Could not connect: ' . mysql_error()); } $this->selectDb($db); } function selectDb($database) { $this->db = mysql_select_db($database,$this->con); if (!$this->db) { echo "Could not Select database: " . mysql_error(); } } 

Любые идеи, почему это не сработает? Я также попытался поместить файл определений в include в файле class_lib, но он все еще не работает.

Это должно работать нормально, и я никогда не видел, чтобы это не сработало.

  • Сделайте 100% уверенным, что вложения находятся в правильном порядке (сначала необходимо указать параметры)

  • Сделайте тестовые выходы из постоянных значений в файле «определения.php» и индексный файл

  • Сделайте 100% уверенным, что вы вызываете нужные файлы

Проверьте, поддерживает ли ваш сервер short_open_tag это значение. Я просто включил его, и он начал работать.

назовите его config.php

 if(!$link) { die('Failed to connect to server: ' . mysql_error()); } $db = mysql_select_db(DB_DATABASE); if(!$db) { die("Unable to select database"); } ?> 

затем включите («config.php»); на ваших страницах

за работой

 <?php define('KLINGON_SEPARATOR', ''); ?> 

не работает

 <?php define('KLINGON_SEPARATOR', ''); 

глупый … IDEA говорит «избыточный закрывающий тег»

Вам просто нужно вынуть функции define файла назначения и перенести его в исходный файл (в вашем случае «translation.php») и готово к работе!

Подобным образом ошибка с функциями определения при получении строковых параметров не происходит, и вы включите CONSTANTS, уже реализованные.

Я столкнулся с этой проблемой и нашел себе это решение.

Ключ в этом заключается в использовании функции constant () для вытягивания значения из определенных констант:

 echo constant("DB_USERNAME");