ローカル環境にてphpとsqlでブログ機能を作成中です。
protect $tabel_name を使用し、データベースへのアクセス等を継承しようと思っています。
しかし、protect $tabel_name がUndefined variable '$table_name'と
定義されていな扱いになってしまいます。
お力をお貸し頂けませんでしょうか。
php
1 2<?PHP 3 4class Connect 5{ 6 protected $table_name; 7 8 9 //データベースに接続する 10 function dbConnect(){ 11 12 try{ 13 $dsn = 'mysql:host=localhost;dbname=AAA;charset=utf8'; 14 $user = 'AAA'; 15 $password = 'AAA'; 16 $opt = [ 17 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 18 ]; 19 20 $dbh = new PDO($dsn, $user, $password, $opt); 21 22 }catch(PDOException $e){ 23 echo "エラー!:".$e->getMessage()."<br>"; 24 exit; 25 }; 26 return $dbh; 27 } 28 29 //データを取得する 30 function getAll(){ 31 $dbh = $this->dbConnect(); 32 $sql ="SELECT * FROM $this->$table_name"; 33 $stmt = $dbh->query($sql); 34 $result = $stmt->fetchAll(PDO::FETCH_ASSOC); 35 return $result; 36 } 37 //取得したデータを表示 38 39 //引数:$id 40 //返り値:$result 41 function getById($id){ 42 if(empty($id)){ 43 exit('IDが不正です'); 44 } 45 46 $dbh = $this->dbConnect(); 47 48 //sql prepair 49 $stmt = $dbh->prepare("SELECT * FROM $this->$table_name WHERE id = :id"); 50 $stmt->bindValue(':id', (int)$id, PDO::PARAM_INT); 51 52 //action 53 $stmt->execute(); 54 //get result 55 $result = $stmt->fetch(PDO::FETCH_ASSOC); 56 57 if(!$result){ 58 exit('ブログがありません'); 59 } 60 return $result; 61 62 } 63 64 } 65 66 67 68?> 69 70
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/02/14 22:33