Как я могу подключиться к MySQLi с переменными из файла config.php?

Я пытаюсь создать панель управления на основе 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"...

Если он говорит, что учетные данные неверны, вам необходимо предоставить правильные. Пока вы не получаете никаких неопределенных переменных/индексов, проблема заключается в фактических значениях.

Qirel 10.07.2019 12:05

Учетные данные верны на 100% .. У меня они были после new mysqli раньше .. Я пытался включить файл настроек, но теперь он показывает некоторые случайные данные sql, о которых я понятия не имею .. Я пытаюсь понять это. Спасибо за быстрый ответ.

kqrmo 10.07.2019 12:06

Я обнаружил, что файл userdata.php каким-то образом не использует файл settings.php.. поэтому он показывает некоторые случайные данные.. :/ 'localhost' и т. д. Также я нашел это из своего журнала ошибок: Undefined variable: config in nc/userdata.php on line 8..

kqrmo 10.07.2019 12:07

Может быть, вы создаете объект соединения mysqli внутри функции? Если это так, $config будет недоступен, и вам нужно будет передать его в функцию в качестве параметра. И, пожалуйста, не делайте это глобальной переменной :-). И я предполагаю, что вы require() настраиваете settings.php в верхней части основного скрипта перед вызовом mysqli().

SaschaM78 10.07.2019 15:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
701
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

вы можете попробовать этот способ в файле 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'.. :/

kqrmo 11.07.2019 21:16
Ответ принят как подходящий

У меня это работает с файлом 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);

Другие вопросы по теме