DBをインスタンスと捉えて検索、追加などを行うクラスですが以下のようなエラーが出ます。
Notice: Undefined variable: dsn in /Applications/MAMP/htdocs/BookingSite/Database.php on line 20 Notice: Undefined variable: user in /Applications/MAMP/htdocs/BookingSite/Database.php on line 20 Notice: Undefined variable: password in /Applications/MAMP/htdocs/BookingSite/Database.php on line 20
ただ
$this->db = new PDO($dsn, $user, $password);
を変数ではなく手打ちで
'mysql:host=localhost:8889;dbname=BookingSite;charest=utf8';
'tennisuser';
'password';
を入力すると成功します。何が間違えていますか。
PHP
1<?php 2 3ini_set('display_errors', 1); 4 5class Database 6{ 7 public $dsn = 'mysql:host=localhost:8889;dbname=BookingSite;charest=utf8'; 8 public $user = 'tennisuser'; 9 public $password = 'password'; 10 public $db; 11 12 public function __construct() 13 { 14 $this->_connectDB(); 15 } 16 17 private function _connectDB() 18 { 19 try { 20 $this->db = new PDO($dsn, $user, $password); 21 $this->db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); 22 } catch (\PDOException $e) { 23 throw new \Exception('Failed to connect DB'); 24 } 25 } 26 27 public function searchhotels($word) 28 { 29 $sql="select hotel_id, country_code from areas where area like '%?%'"; 30 $stmt = $this->_db->prepare($sql); 31 $stmt->bindParam(1, $word, PDO::PARAM_STR); 32 $stmt ->execute(); 33 } 34} 35
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/09 16:16
2019/02/09 16:19
退会済みユーザー
2019/02/09 16:21
2019/02/09 16:25
2019/02/09 16:26