質問編集履歴

1

追記

2017/12/02 10:21

投稿

dog57
dog57

スコア131

test CHANGED
File without changes
test CHANGED
@@ -1,7 +1,185 @@
1
1
  mysqlでテーブルを作成するときは、電話番号はint型が適していますか?
2
+
3
+
4
+
5
+ PDOでDBに登録しようとすると上手く登録できない現象が起きています。
2
6
 
3
7
 
4
8
 
5
9
  ![イメージ説明](c2589862156d4290059b70a6486fae79.png)
6
10
 
7
11
  ![イメージ説明](8372d55459f8e66ed016b56b0519557b.png)
12
+
13
+
14
+
15
+ 登録完了画面
16
+
17
+ ```php
18
+
19
+ <?php
20
+
21
+ // 開発時にこれを書かないのはNG
22
+
23
+ ini_set('display_errors', TRUE);
24
+
25
+ error_reporting(E_ALL);
26
+
27
+
28
+
29
+ session_start();
30
+
31
+
32
+
33
+ header("Content-type: text/html; charset=utf-8");
34
+
35
+
36
+
37
+ require_once(__DIR__. '/db.php');
38
+
39
+ //配列を文字列に変換する(DBに登録した配列を使う時は、逆にデコードをする)
40
+
41
+ $hobbyData = $_SESSION["hobby"];
42
+
43
+ $_SESSION["hobby"] = serialize($hobbyData);
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ try {
56
+
57
+
58
+
59
+ $dbh = new PDO($dsn, $user, $password);
60
+
61
+ $statement = $dbh->prepare("INSERT INTO users (name, email, password, tel, prefectures, hobby, gender, contact, creation_time) VALUES (:name, :email, :password, :tel, :prefectures, :hobby, :gender, :contact, :creation_time)");
62
+
63
+
64
+
65
+ if ($statement) {
66
+
67
+
68
+
69
+ $date = date_default_timezone_set('Asia/Tokyo');
70
+
71
+ $date = new DateTime();
72
+
73
+ $date = $date->format('Y-m-d H:i:s');
74
+
75
+
76
+
77
+ // プレースホルダへ実際の値を設定する
78
+
79
+ $statement->bindValue(':name', $_SESSION["name"], PDO::PARAM_STR);
80
+
81
+ $statement->bindValue(':email', $_SESSION["email"], PDO::PARAM_STR);
82
+
83
+ $statement->bindValue(':password', $_SESSION["password"], PDO::PARAM_STR);
84
+
85
+ $statement->bindValue(':tel', $_SESSION["tel"], PDO::PARAM_STR);
86
+
87
+ $statement->bindValue(':prefectures', $_SESSION["prefectures"], PDO::PARAM_STR);
88
+
89
+ $statement->bindValue(':hobby', $_SESSION["hobby"], PDO::PARAM_STR);
90
+
91
+ $statement->bindValue(':gender', $_SESSION["gender"], PDO::PARAM_STR);
92
+
93
+ $statement->bindValue(':contact', $_SESSION["contact"], PDO::PARAM_STR);
94
+
95
+ $statement->bindValue(':creation_time', $date, PDO::PARAM_STR);
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+ // 実行する
104
+
105
+ if (!$statement->execute()) {
106
+
107
+ $errors['error'] = "登録失敗しました。 ";
108
+
109
+ }
110
+
111
+
112
+
113
+ //データベース切断
114
+
115
+ $dbh = null;
116
+
117
+
118
+
119
+
120
+
121
+ }
122
+
123
+
124
+
125
+
126
+
127
+ } catch (PDOException $e) {
128
+
129
+ print('Error:'.$e->getMessage());
130
+
131
+ $errors['error'] = "データベース接続失敗しました。";
132
+
133
+ }
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+ ?>
142
+
143
+
144
+
145
+
146
+
147
+ <!DOCTYPE html>
148
+
149
+ <html>
150
+
151
+ <head>
152
+
153
+ <meta charset="utf-8">
154
+
155
+ <title>登録完了</title>
156
+
157
+ </head>
158
+
159
+ <body>
160
+
161
+
162
+
163
+ 登録完了!
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+ <a href="http://192.168.33.15"><button type="button" name="singlebutton" class="btn btn-primary" id="singlebutton">戻る</button></a>
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+ </body>
180
+
181
+ </html>
182
+
183
+
184
+
185
+ ```