this->何故?エラー???
いつもお世話になりありがとうございます。
標記の件。
26行目がどうしてもエラーになります。
エラーメッセージは
Fatal error: Uncaught Error: Undefined constant "this" in C:\xampp\htdocs\dbc.php:26 Stack trace: #0 C:\xampp\htdocs\index.php(4): Dbc->getAll() #1 {main} thrown in C:\xampp\htdocs\dbc.php on line 26
です。
度々申し訳ございません。
アドバイスの程、宜しくお願い申し上げます。
記
<?php
class Dbc
{
protected $table_name;
private 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(); ★ここが26行目
//①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");
$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);
}
}
}
?>