###前提・実現したいこと
配列で出力したいのです htmlの部分は表示しなくてもいいです。
###発生している問題・エラーメッセージ
ブラウザで確認するとエラーが出てしまいます。エラー検知の部分で引っかかってしまう状態です。
宜しくお願いします。
invalid data source name
config.php
php
1<?php 2define('database_name','dotinstall_todo_app'); 3define('database_user','dbuser'); 4define('database_password','$wataru'); 5define('database_host','localhost');;
##Todo.php
php
1<?php 2class Todo{ 3private $db; 4 5public function __construct() { 6 7try {//エラーを検知したい処理 8$this->$db = new \PDO(database_user,database_password); 9 10//setAttributeでエラーの属性を追加SQLのエラーメッセージを見れるようにする 11$this->$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 12 13}catch (PDOException $e){//エラーが実際起こった時の処理 14//PDOExceptionは接続に失敗した場合などに投げられる例外処理 15echo $e->getMessage(); 16exit; 17} 18} 19 20public function getAll(){ 21//query(データベースに命令を投げる) 22$stmt = $this->db->query("select * from todos order by id desc"); 23//配列として帰って来るPDO::FETCH_OBJは次の行を取得する 24return $stmt->fetchAll(PDO::FETCH_OBJ); 25} 26}
###index.php
php
1<?php 2 3require_once('config.php'); 4require_once('function.php'); 5require_once('Todo.php'); 6 7//新しくクラスを作る 8$todoApp = new Todo(); 9 10//TodoクラスのgetAll関数 11$todos = $todoApp->getAll(); 12 13var_dump($todos); 14exit;
###function.php
php
1<?php 2function h($s){ 3//('送られてきた文字列','エスケープの種類','文字コード); 4//悪意あるコードをただの文字として扱うために置き換える関数 5return htmlspecialchars($s,ENT_QUOTES,'UTF-8'); 6}
###試したこと
PDO周りを触っています。まだ質問の仕方が下手だと思うのでなにかありましたらおしゃってください。
###補足情報(言語/FW/ツール等のバージョンなど)
XAMPP MAC
回答1件
あなたの回答
tips
プレビュー