teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

PDO修正 namespace削除

2016/05/08 04:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
  宜しくお願いします。
7
7
 
8
8
  ```
9
- Fatal error: Uncaught Error: Class 'MyApp\PDO' not found in /Applications/XAMPP/xamppfiles/htdocs/todo_app_php/Todo.php:10 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/todo_app_php/index.php(8): MyApp\Todo->__construct() #1 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/todo_app_php/Todo.php on line 10
9
+ invalid data source name
10
10
  ```
11
11
 
12
12
  ### config.php
@@ -27,7 +27,7 @@
27
27
  public function __construct() {
28
28
 
29
29
  try {//エラーを検知したい処理
30
- $this->$db = new PDO(database_user,database_password);
30
+ $this->$db = new \PDO(database_user,database_password);
31
31
 
32
32
  //setAttributeでエラーの属性を追加SQLのエラーメッセージを見れるようにする
33
33
  $this->$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
@@ -57,7 +57,7 @@
57
57
  require_once('Todo.php');
58
58
 
59
59
  //新しくクラスを作る
60
- $todoApp = new \MyApp\Todo();
60
+ $todoApp = new Todo();
61
61
 
62
62
  //TodoクラスのgetAll関数
63
63
  $todos = $todoApp->getAll();

2

ファイル修正,つづり変更

2016/05/08 04:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -12,7 +12,7 @@
12
12
  ### config.php
13
13
  ```php
14
14
  <?php
15
- define('databese_name','dotinstall_todo_app');
15
+ define('database_name','dotinstall_todo_app');
16
16
  define('database_user','dbuser');
17
17
  define('database_password','$wataru');
18
18
  define('database_host','localhost');;
@@ -21,49 +21,31 @@
21
21
  ##Todo.php
22
22
  ```php
23
23
  <?php
24
+ class Todo{
25
+ private $db;
24
26
 
25
- require_once('config.php');
27
+ public function __construct() {
26
- require_once('function.php');
27
- require_once('Todo.php');
28
28
 
29
- //新しくク作る
29
+ try {//検知したい処理
30
- $todoApp = new \MyApp\Todo();
30
+ $this->$db = new PDO(database_user,database_password);
31
31
 
32
- //TodoクgetAll関数
32
+ //setAttributeでエ属性を追加SQLのエラーメッセージを見れるようにする
33
- $todos = $todoApp->getAll();
33
+ $this->$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
34
34
 
35
+ }catch (PDOException $e){//エラーが実際起こった時の処理
36
+ //PDOExceptionは接続に失敗した場合などに投げられる例外処理
35
- var_dump($todos);
37
+ echo $e->getMessage();
36
38
  exit;
39
+ }
40
+ }
37
41
 
38
- ?>
39
- <!DOCTYPE html>
40
- <html lang="ja">
41
- <head>
42
- <meta charset="utf-8">
43
- <title>My Todos</title>
44
- <link rel="stylesheet" href="style.css">
45
- </head>
46
- <body>
47
- <div id="container">
48
- <h1>Todos</h1>
49
- <form action="">
42
+ public function getAll(){
43
+ //query(データベースに命令を投げる)
50
- <input type="text" id="new_todo" placeholder="what needs to be done?">
44
+ $stmt = $this->db->query("select * from todos order by id desc");
51
- </form>
45
+ //配列として帰って来るPDO::FETCH_OBJは次の行を取得する
52
- <ul>
53
- <li>
54
- <input type="checkbox" checked>
46
+ return $stmt->fetchAll(PDO::FETCH_OBJ);
55
- <span>Do something again</span>
56
- <div class="delete_todo">x</div>
57
- </li>
58
- <li>
47
+ }
59
- <input type = "checkbox" checked>
60
- <span class="done">Do something again</span>
61
- <div class="delete_todo">x</div>
62
- </li>
48
+ }
63
- </ul>
64
- </div>
65
- </body>
66
- </html>
67
49
  ```
68
50
 
69
51
  ###index.php
@@ -84,9 +66,19 @@
84
66
  exit;
85
67
  ```
86
68
 
69
+ ###function.php
70
+ ```php
71
+ <?php
72
+ function h($s){
73
+ //('送られてきた文字列','エスケープの種類','文字コード);
74
+ //悪意あるコードをただの文字として扱うために置き換える関数
75
+ return htmlspecialchars($s,ENT_QUOTES,'UTF-8');
76
+ }
77
+ ```
87
78
 
88
79
 
89
80
 
81
+
90
82
  ###試したこと
91
83
  PDO周りを触っています。まだ質問の仕方が下手だと思うのでなにかありましたらおしゃってください。
92
84
  ###補足情報(言語/FW/ツール等のバージョンなど)

1

つづり間違い

2016/05/08 04:47

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -14,8 +14,8 @@
14
14
  <?php
15
15
  define('databese_name','dotinstall_todo_app');
16
16
  define('database_user','dbuser');
17
- define('databese_password','$wataru');
17
+ define('database_password','$wataru');
18
- define('databese_host','localhost');;
18
+ define('database_host','localhost');;
19
19
  ```
20
20
 
21
21
  ##Todo.php