Как исправить ошибку при соединении с бд из функции?

В файле api.php я написал 2 функции.
Первая- соединяется с бд. Вторая вызывает функцию соединения с бд и выбирает данные из бд.
В файле index.php я вызываю вторую функцию. И получаю ошибку.
Fatal error: Class 'my_api\mysqli' not found in Z:\domains\test_site\api.php on line 102
Строка 102 - это
$mysqli = new mysqli($hostname, $username, $password, $base_name);

Как исправить ошибку при соединении с бд из функции?

Файл api.php
namespace my_api;
//Соединение с базой
function connect_to_base($base_name)
{
$hostname='localhost';
$username='root';
$password='Ser45Ddf';
if ($_SERVER["REMOTE_ADDR"]=='127.0.0.1') $password=''; //Пароль для локального хоста
$mysqli = new mysqli($hostname, $username, $password, $base_name); // <b>line 102</b>
if (mysqli_connect_errno()) {printf("Connect failed: %s\n", mysqli_connect_error());exit();}
return $mysqli;
}

//Функция с вызовом соединения с базой
function my_func()
{
$mysqli=connect_to_base('statistics'); //Не получает объект?
$mysqli_result=$mysqli->query("SELECT * FROM `day_data` ORDER BY id DESC LIMIT 1");
//...............
}


Файл index.php
include_once (__DIR__.'/api.php'); //Проверял - файл подключен верно и другие функции работают

$a=my_api\my_func(); //Fatal error: Class 'my_api\mysqli' not found in Z:\domains\test_site\api.php on line 102
echo $a;
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
неймспейс задайте для глобального класса mysqli так, тк вы задали свой кастомный, а в нем нет такого:
new \mysqli

И зачем ООП-стиль подключения использовать в процедурном коде?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы