Я пытаюсь создать панель управления на основе MySQL и PHP для своего сообщества. И я сделал файл settings.php с массивами с конфигами. У меня есть файлы классов для функций, но есть функция MySQL, которая не будет подключаться к данным, которые я ввел в settings.php..
Я пробовал другие параметры файла конфигурации, но ни один из них не работает...
в settings.php у меня есть такие данные MySQL:
$config['database']['host'] = "---";
$config['database']['user'] = "---";
$config['database']['password'] = "---";
$config['database']['database'] = "---";
И в файле класса userdata.php, где я пытаюсь использовать те переменные конфигурации, которые у меня есть:
$mysql = new mysqli($config['database']['host'], $config['database']['user'], $config['database']['password'], $config['database']['database']);
очевидно, в userdata.php мне также потребовался файл settings.php..
Я ожидал, что вывод будет правильным, но он показывает только ошибки "неправильные данные MySQL"...
Учетные данные верны на 100% .. У меня они были после new mysqli раньше .. Я пытался включить файл настроек, но теперь он показывает некоторые случайные данные sql, о которых я понятия не имею .. Я пытаюсь понять это. Спасибо за быстрый ответ.
Я обнаружил, что файл userdata.php каким-то образом не использует файл settings.php.. поэтому он показывает некоторые случайные данные.. :/ 'localhost' и т. д. Также я нашел это из своего журнала ошибок: Undefined variable: config in nc/userdata.php on line 8..
Может быть, вы создаете объект соединения mysqli внутри функции? Если это так, $config будет недоступен, и вам нужно будет передать его в функцию в качестве параметра. И, пожалуйста, не делайте это глобальной переменной :-). И я предполагаю, что вы require() настраиваете settings.php в верхней части основного скрипта перед вызовом mysqli().






вы можете попробовать этот способ в файле connection.php
<?php
include_once("path/config.php");
function OpenCon()
{
$dbhost = $config['database']['host'];
$dbuser = $config['database']['user'];
$dbpass = $config['database']['password'];
$db = $config['database']['db'];
$conn = new mysqli($dbhost, $dbuser, $dbpass,$db) or die("Connect failed: %s\n".
$conn -> error);
return $conn;
}
Я пробовал это, но он каким-то образом пытался подключиться к «localhost».. показывает ошибку @'localhost'.. :/
У меня это работает с файлом settings.php, например:
$config = array (
'db_host' => 'xxx',
'db_user' => 'xxx',
'db_pass' => 'xxx',
'db_database' => 'xxx'
и userdata.php, например:
include 'settings.php';
$host = $config['db_host'];
$user = $config['db_user'];
$pass = $config['db_pass'];
$database = $config['db_database'];
$mysql = new mysqli($host, $user, $pass, $database);
Если он говорит, что учетные данные неверны, вам необходимо предоставить правильные. Пока вы не получаете никаких неопределенных переменных/индексов, проблема заключается в фактических значениях.