В документации по 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();
Я попытался заменить PDO на mysqli, но это не сработало.
Добавьте код, который вы пробовали, и то, что не сработало должным образом. Были ли ошибки?
Я пробовал с Flight :: register ('db', 'mysqli', array ('mysql: host = localhost; dbname = dbn', 'user', 'pass'));
И я получаю эту ошибку mysqli :: __ construct (): php_network_getaddresses: getaddrinfo failed: имя или служба неизвестны (2)
Пожалуйста, попробуйте то, что я предложил в первом комментарии. И, пожалуйста, добавляйте дополнительную информацию к вопросу, а не в комментариях
@Pajsije в первом комментарии вам посоветовали изменить 3-й аргумент на вызов register()
, это должен быть массив из 4-х элементов: адрес сервера, логин, пароль, имя базы данных. Ваш код все еще использует аргументы PDO
Андрей, спасибо большое. Это был правильный ответ.
Благодаря @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);
Для форматирования кода используйте отступ с четырьмя пробелами или выберите его и используйте кнопку {}
, чтобы сделать это автоматически. >
предназначен для цитируемого текста и имеет неправильный стиль.
Хороший. Собственно, ссылка на. Это возможно Flight::db()->query("SELECT * FROM test_table LIMIT 1")->fetch_assoc();
Лучше спросить об этом в репозитории FlightPHP на github. Но вы должны иметь возможность использовать пример PDO и изменить его для работы с mysqli. Первый аргумент ('db') - это просто статическая функция, которую вы регистрируете с помощью Flight, второй - это имя класса PHP (mysqli), а третий - это массив значений, которые вы обычно отправляете в конструктор mysqli (' хост базы данных ',' пользователь ',' передать ',' имя базы данных ')