突如!接続エラー!?php
いつもお世話になりありがとうございます。
標記の件。
下記のエラーがlocalhost/index.php/で出ました。
接続失敗SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for $host failed: ���̂悤�ȃz�X�g�͕s���ł��B
大変恐縮ではございますが、下記のコードを吟味して頂けないでしょうか?
度々申し訳ございません。
宜しくお願い申し上げます。
記
index.php
<?php
require_once ('blog.php');
$blog = new Blog();
$blogData = $blog->getAll();
function h($s){
return htmlspecialchars($s, ENT_QUOTES,"UTF-8");
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ブログ一覧</title>
</head>
<body>
<h2>ブログ一覧</h2>
<p><a href="/form.html">新規作成</a></p>
<table>
<tr>
<th>タイトル</th>
<th>カテゴリー</th>
<th>投稿日時</th>
<tr>
<?php foreach ($blogData as $column): ?>
<tr>
<td><?php echo h($column['title']) ?></td>
<td><?php echo h($blog->setCategoryName($column['category'])) ?></td>
<td><?php echo h($column['post_at']) ?></td>
<td><a href="/detail.php?id=<?php echo $column['id'] ?>">詳細</a></td>
<td><a href="/update_form.php?id=<?php echo $column['id'] ?>">編集</a></td>
<td><a href="/blog_delete.php?id=<?php echo $column['id'] ?>">削除</a></td>
</tr>
<?php endforeach; ?>
</body>
</html>
env.php
<?php
define('DB_HOST','localhost');
define('DB_NAME','blog_app');
define('DB_USER','blog_user');
define('DB_PASS','**********');
?>
dbc.php
<?php
require_once('env.php');
class Dbc
{
protected $table_name;
protected function dbConnect()
{
$host = DB_HOST;
$dbname = DB_NAME;
$user = DB_USER;
$pass = DB_PASS;
$dsn = 'mysql:host=$host;dbname=$dbname;blog_app;charset=utf8';
try {
$dbh = new \PDO($dsn, $user, $pass, [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
]);
} catch (PDOException $e) {
echo '接続失敗' . $e->getMessage();
exit();
};
return $dbh;
}
public function getAll()
{
$dbh = $this->dbConnect();
//①SQLの準備
$sql = "SELECT * FROM $this->table_name";
//②SQLの実行
$stmt = $dbh->query($sql);
//③SQLの結果を受け取る
$result = $stmt->fetchall(\PDO::FETCH_ASSOC);
return $result;
$dbh = null;
}
public function setCategoryName($category)
{
if ($category == '1') {
return '日常';
} elseif ($category == '2') {
return '非日常';
} else {
return 'その他';
}
}
public function getById($id)
{
if (empty($id)) {
exit('idが不正です。');
}
$dbh = $this->dbConnect();
$sql = "SELECT * FROM $this->table_name";
$stmt = $dbh->prepare("SELECT * FROM $this->table_name Where id = :id");
$stmt->bindValue(':id', (int)$id, \PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
if (!$result) {
exit('本文がありません。');
}
return $result;
}
public function delete($id)
{
if (empty($id)) {
exit('idが不正です。');
}
$dbh = $this->dbConnect();
$stmt = $dbh->prepare("DELETE FROM $this->table_name Where id = :id");
$stmt->bindValue(':id', (int)$id, \PDO::PARAM_INT);
$stmt->execute();
echo 'ブログを削除しました!';
return $result;
}
}
?>
<p><a href="/">戻る</a></p>
大変、お手数をおかけします。
どうか教えてください。
宜しくお願い申し上げます。
お礼
回答ありがとうございました。 残念ですがしょうがないので、他サーバも検討してみます