Я столкнулся с этой проблемой при установке скрипта. Это дает мне следующую ошибку:
Предупреждение: PDO :: __ construct (): php_network_getaddresses: getaddrinfo не удалось: такой хост не известен. в C: \ xampp \ htdocs \ dreads \ recent \ test \ Feedstack-master \ Feedstack-master \ app \ models \ install.php в строке 35
DB ERROR: SQLSTATE [HY000] [2002] php_network_getaddresses: getaddrinfo не удалось: такой хост не известен.
строка 35 // $ db = новый PDO («mysql: host = $ host; db_name = $ db_name», $ user, $ pass);
любая помощь!
defined('_PATHANG') or die; class modelInstall{ public function main($request){ $db_name = $request->get('db_name'); $host = $request->get('host'); $user =$request->get('db_username'); $pass = $request->get('db_password'); $site_name = $request->get('site_name'); $site_url = $request->Get('site_url'); $this->create_db($db_name,$host,$user,$pass); $this->create_tables($db_name,$host,$user,$pass); $this->update_config($site_name,$site_url,$db_name,$host,$user,$pass); } public function create_db($db_name,$host,$user,$pass) { try { $db = new PDO("mysql:host=$host;db_name=$db_name", $user, $pass); $db->exec("CREATE DATABASE `$db_name`;") or die(print_r($db->errorInfo(), true)); } catch (PDOException $e) { die("DB ERROR: ". $e->getMessage()); } }
Попробуйте подключиться через MYSQLI
$con = mysqli_connect("localhost","my_user","my_password","my_db");
Как сказал Хобо Сапиенс, хозяин, которого вы предоставляете, не существует или не имеет орфографической ошибки, я не знаю структуру вашего объекта $request
. Структура вашего объекта должна быть примерно такой.
class Request { private $host; private $db_name; private $db_username; private $db_pwd; public function __construct($host,$db_name,$db_username,$db_pwd) { $this->host = $host; $this->db_name = $db_name; $this->db_username = $db_username; $this->db_pwd = $db_pwd; } public function getHost(){ return $this->host; } public function getDBName(){ return $this->db_name; } public function getDBUsername(){ return $this->db_username; } public function getDBPwd(){ return $this->db_pwd; } }
Затем вы можете сделать что-то вроде следующего
$request = new Request('localhost', 'TestingPDO', 'root', ''); $modelinstall = new modelInstall(); $modelinstall->main($request);
вот как я его исправляю
<?php defined('_PATHANG') or die; class modelInstall{ public function main($request){ $db_name = $request->get('db_name'); $host = $request->get('host'); $user =$request->get('db_username'); $pass = $request->get('db_password'); $site_name = $request->get('site_name'); $site_url = $request->Get('site_url'); $this->create_db($db_name,$host,$user,$pass); $this->create_tables($db_name,$host,$user,$pass); $this->update_config($site_name,$site_url,$db_name,$host,$user,$pass); } public function create_db($db_name,$host,$user,$pass) { try { $db = new PDO("mysql:host=localhost", 'root', 'mypassword'); $db->exec("CREATE DATABASE `feedstack`;") or die(print_r($db->errorInfo(), true)); } catch (PDOException $e) { die("DB ERROR: ". $e->getMessage()); } }