Как использовать mysqli на PHP-фреймворке Flight

В документации по Flight php рассказывается, как мы можем использовать подключение PDO к базе данных. Например

Flight::register('db', 'PDO', array('mysql:host=localhost;dbname=test','user','pass'));

$db = Flight::db();

$x=$db->query("SELECT * FROM `test_table` LIMIT 0, 30")->fetch(PDO::FETCH_ASSOC);

Но как мы можем использовать MySQLi в FlightPHP?


Если я заменю PDO на mysqli, я получаю эту ошибку

mysqli::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known (2)

Flight::register('db', 'mysqli', array('mysql:host=localhost;dbname=test','user','pass'));

$db = Flight::db();

$x=$db->query("SELECT * FROM `test_table` LIMIT 0, 30")->fetch_assoc();

Лучше спросить об этом в репозитории FlightPHP на github. Но вы должны иметь возможность использовать пример PDO и изменить его для работы с mysqli. Первый аргумент ('db') - это просто статическая функция, которую вы регистрируете с помощью Flight, второй - это имя класса PHP (mysqli), а третий - это массив значений, которые вы обычно отправляете в конструктор mysqli (' хост базы данных ',' пользователь ',' передать ',' имя базы данных ')

JimL 01.05.2018 23:57

Я попытался заменить PDO на mysqli, но это не сработало.

user1762634 01.05.2018 23:59

Добавьте код, который вы пробовали, и то, что не сработало должным образом. Были ли ошибки?

JimL 02.05.2018 00:00

Я пробовал с Flight :: register ('db', 'mysqli', array ('mysql: host = localhost; dbname = dbn', 'user', 'pass'));

user1762634 02.05.2018 00:03

И я получаю эту ошибку mysqli :: __ construct (): php_network_getaddresses: getaddrinfo failed: имя или служба неизвестны (2)

user1762634 02.05.2018 00:03

Пожалуйста, попробуйте то, что я предложил в первом комментарии. И, пожалуйста, добавляйте дополнительную информацию к вопросу, а не в комментариях

JimL 02.05.2018 00:04

@Pajsije в первом комментарии вам посоветовали изменить 3-й аргумент на вызов register(), это должен быть массив из 4-х элементов: адрес сервера, логин, пароль, имя базы данных. Ваш код все еще использует аргументы PDO

Andrii Maletskyi 02.05.2018 00:14

Андрей, спасибо большое. Это был правильный ответ.

user1762634 02.05.2018 00:18
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
8
1 064
1

Ответы 1

Благодаря @Andriy Maletsky я нашел, где была ошибка.

Flight::register('db', 'mysqli', array('localhost','my_user','my_pass','my_dbname'));

$db = Flight::db();

$x = $db->query("SELECT * FROM `test_table` LIMIT 1")->fetch_assoc();

print_r($x);

Для форматирования кода используйте отступ с четырьмя пробелами или выберите его и используйте кнопку {}, чтобы сделать это автоматически. > предназначен для цитируемого текста и имеет неправильный стиль.

tadman 02.05.2018 00:40

Хороший. Собственно, ссылка на. Это возможно Flight::db()->query("SELECT * FROM test_table LIMIT 1")->fetch_assoc();

Fatih Mert Doğancan 26.02.2019 12:45

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