SELECT文でエラー???何故でしょうか???
いつも大変お世話になり誠にありがとうございます。
標記の件。
ファイルが多いので、他の箇所に誤りがあるかもしれません。
エラーメッセージは
Fatal error: Uncaught Error: Object of class Blog could not be converted to string in C:\xampp\htdocs\dbc.php:55 Stack trace: #0 C:\xampp\htdocs\detail.php(4): Dbc->getById('1') #1 {main} thrown in C:\xampp\htdocs\dbc.php on line 55
です。
度々申し訳ございません。
アドバイスの程、宜しくお願い申し上げます。
記
<?php
class Dbc
{
protected $table_name;
protected function dbConnect()
{
$dsn = 'mysql:host=localhost;dbname=blog_app;charset=utf8';
$user = 'blog_user';
$pass = 'rhythm0!KT';
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();
$stmt = $dbh->prepare("SELECT * FROM $this->$table_name Where id = :id"); ★ここが55行目です!
$stmt->bindValue(':id', (int)$id, PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$result) {
exit('本文がありません。');
}
return $result;
}
public function blogCreate($blogs)
{
$sql = 'INSERT INTO
blog(title, content, category, publish_status)
VALUES
(:title, :content, :category, :publish_status)';
$dbh = $this->dbConnect();
$dbh->biginTransaction;
try {
$stmt = $dbh->prepare($sql);
$stmt->bindValue(':title', $blogs['title'], PDO::PARAM_STR);
$stmt->bindValue(':content', $blogs['content'], PDO::PARAM_STR);
$stmt->bindValue(':category', $blogs['category'], PDO::PARAM_INT);
$stmt->bindValue(':publish_status', $blogs['publish_status'], PDO::PARAM_INT);
$stmt->execute();
$dbh->commit();
echo 'ブログを投稿しました!';
} catch (PDOException $e) {
$dbh->rollBack();
exit($e);
}
}
}
?>