Я пробовал свою руку в 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");