質問編集履歴

3

PDO修正 namespace削除

2016/05/08 04:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  ```
16
16
 
17
- 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
17
+ invalid data source name
18
18
 
19
19
  ```
20
20
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  try {//エラーを検知したい処理
58
58
 
59
- $this->$db = new PDO(database_user,database_password);
59
+ $this->$db = new \PDO(database_user,database_password);
60
60
 
61
61
 
62
62
 
@@ -116,7 +116,7 @@
116
116
 
117
117
  //新しくクラスを作る
118
118
 
119
- $todoApp = new \MyApp\Todo();
119
+ $todoApp = new Todo();
120
120
 
121
121
 
122
122
 

2

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

2016/05/08 04:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  <?php
28
28
 
29
- define('databese_name','dotinstall_todo_app');
29
+ define('database_name','dotinstall_todo_app');
30
30
 
31
31
  define('database_user','dbuser');
32
32
 
@@ -44,91 +44,55 @@
44
44
 
45
45
  <?php
46
46
 
47
+ class Todo{
47
48
 
48
-
49
- require_once('config.php');
50
-
51
- require_once('function.php');
52
-
53
- require_once('Todo.php');
49
+ private $db;
54
50
 
55
51
 
56
52
 
57
- //新しくクラスを作る
58
-
59
- $todoApp = new \MyApp\Todo();
53
+ public function __construct() {
60
54
 
61
55
 
62
56
 
63
- //TodoクスのgetAll関数
57
+ try {//ーを検知したい処理
64
58
 
65
- $todos = $todoApp->getAll();
59
+ $this->$db = new PDO(database_user,database_password);
66
60
 
67
61
 
68
62
 
63
+ //setAttributeでエラーの属性を追加SQLのエラーメッセージを見れるようにする
64
+
65
+ $this->$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
66
+
67
+
68
+
69
+ }catch (PDOException $e){//エラーが実際起こった時の処理
70
+
71
+ //PDOExceptionは接続に失敗した場合などに投げられる例外処理
72
+
69
- var_dump($todos);
73
+ echo $e->getMessage();
70
74
 
71
75
  exit;
72
76
 
77
+ }
78
+
79
+ }
73
80
 
74
81
 
75
- ?>
76
82
 
77
- <!DOCTYPE html>
83
+ public function getAll(){
78
84
 
79
- <html lang="ja">
85
+ //query(データベースに命令を投げる)
80
86
 
81
- <head>
87
+ $stmt = $this->db->query("select * from todos order by id desc");
82
88
 
83
- <meta charset="utf-8">
89
+ //配列として帰って来るPDO::FETCH_OBJは次の行を取得する
84
90
 
85
- <title>My Todos</title>
91
+ return $stmt->fetchAll(PDO::FETCH_OBJ);
86
92
 
87
- <link rel="stylesheet" href="style.css">
93
+ }
88
94
 
89
- </head>
90
-
91
- <body>
92
-
93
- <div id="container">
94
-
95
- <h1>Todos</h1>
96
-
97
- <form action="">
98
-
99
- <input type="text" id="new_todo" placeholder="what needs to be done?">
100
-
101
- </form>
102
-
103
- <ul>
95
+ }
104
-
105
- <li>
106
-
107
- <input type="checkbox" checked>
108
-
109
- <span>Do something again</span>
110
-
111
- <div class="delete_todo">x</div>
112
-
113
- </li>
114
-
115
- <li>
116
-
117
- <input type = "checkbox" checked>
118
-
119
- <span class="done">Do something again</span>
120
-
121
- <div class="delete_todo">x</div>
122
-
123
- </li>
124
-
125
- </ul>
126
-
127
- </div>
128
-
129
- </body>
130
-
131
- </html>
132
96
 
133
97
  ```
134
98
 
@@ -170,6 +134,26 @@
170
134
 
171
135
 
172
136
 
137
+ ###function.php
138
+
139
+ ```php
140
+
141
+ <?php
142
+
143
+ function h($s){
144
+
145
+ //('送られてきた文字列','エスケープの種類','文字コード);
146
+
147
+ //悪意あるコードをただの文字として扱うために置き換える関数
148
+
149
+ return htmlspecialchars($s,ENT_QUOTES,'UTF-8');
150
+
151
+ }
152
+
153
+ ```
154
+
155
+
156
+
173
157
 
174
158
 
175
159
 

1

つづり間違い

2016/05/08 04:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -30,9 +30,9 @@
30
30
 
31
31
  define('database_user','dbuser');
32
32
 
33
- define('databese_password','$wataru');
33
+ define('database_password','$wataru');
34
34
 
35
- define('databese_host','localhost');;
35
+ define('database_host','localhost');;
36
36
 
37
37
  ```
38
38