回答編集履歴

3

加筆修正

2019/04/12 08:55

投稿

退会済みユーザー
test CHANGED
@@ -53,3 +53,53 @@
53
53
  ```
54
54
 
55
55
  などとしてみては。$dbにどんな値が入るかを確認するのも忘れずに。
56
+
57
+
58
+
59
+ ---
60
+
61
+
62
+
63
+ XAMPPって話が出てきたので補足します。
64
+
65
+ XAMPP Control Panelってのを立ち上げると、
66
+
67
+ Apacheの他にMySQLってのがModuleとしてあるはずです。
68
+
69
+ MySQLが稼働していればPort(s)の欄に番号が書いてあって、
70
+
71
+ それがDB接続できるポート番号です。
72
+
73
+ 標準ではTCP:3306番のはずですが、
74
+
75
+ インストール時に違う番号になっていることもあるので、
76
+
77
+ もしも違っていた(仮に13306だったとして)場合には
78
+
79
+ ```php
80
+
81
+ try {
82
+
83
+ $db = new PDO('mysql:host=localhost;port=13306;dbname=csv_db;charset=utf8mb4', 'root', '', [
84
+
85
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
86
+
87
+ PDO::ATTR_EMULATE_PREPARES => false,
88
+
89
+ ]);
90
+
91
+ var_dump($db)
92
+
93
+ } catch (PDOException $e) {
94
+
95
+ echo 'データベースに接続エラー' . $e->getMessage();
96
+
97
+ exit();
98
+
99
+ }
100
+
101
+
102
+
103
+ ```
104
+
105
+ などとしてポート番号を与える必要があります。

2

見直し

2019/04/12 08:55

投稿

退会済みユーザー
test CHANGED
@@ -19,3 +19,37 @@
19
19
  で、execute()の場面で、「$first_name, $last_name, password_hash($password, PASSWORD_DEFAULT)」って、
20
20
 
21
21
  passwordに$last_nameでいいのかと。
22
+
23
+
24
+
25
+ ---
26
+
27
+
28
+
29
+ DB接続の場面で例外を捕まえられていない可能性が高いです。
30
+
31
+ ```php
32
+
33
+ try {
34
+
35
+ $db = new PDO('mysql:host=localhost;dbname=csv_db;charset=utf8mb4', 'root', '', [
36
+
37
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
38
+
39
+ PDO::ATTR_EMULATE_PREPARES => false,
40
+
41
+ ]);
42
+
43
+ var_dump($db)
44
+
45
+ } catch (PDOException $e) {
46
+
47
+ echo 'データベースに接続エラー' . $e->getMessage();
48
+
49
+ exit();
50
+
51
+ }
52
+
53
+ ```
54
+
55
+ などとしてみては。$dbにどんな値が入るかを確認するのも忘れずに。

1

加筆修正

2019/04/12 08:09

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,21 @@
1
1
  name, password, valueを指定しているのに、
2
2
 
3
3
  ?によって2つしか提供していないんだけど。
4
+
5
+
6
+
7
+ mysqlなら識別子にはバッククオートを足すと安全性が高まるかも。
8
+
9
+
10
+
11
+ ```
12
+
13
+ $stmt = $db->prepare("INSERT INTO userData(`name`, `password`, `value`) VALUES (?, ?, ?)");
14
+
15
+ ```
16
+
17
+
18
+
19
+ で、execute()の場面で、「$first_name, $last_name, password_hash($password, PASSWORD_DEFAULT)」って、
20
+
21
+ passwordに$last_nameでいいのかと。