回答編集履歴

2

加筆

2021/04/28 00:12

投稿

退会済みユーザー
test CHANGED
@@ -13,3 +13,55 @@
13
13
  コントロールパネルからデータベースの情報を調べて、
14
14
 
15
15
  接続用文字列のlocalhostなどの設定を見直ししてください。
16
+
17
+
18
+
19
+ ---
20
+
21
+
22
+
23
+ ```php
24
+
25
+ $db->query("INSERT INTO tb (ban,nam,mes,dat)
26
+
27
+ VALUES (NULL,'$my_nam','$my_mes',NOW())");
28
+
29
+ ```
30
+
31
+
32
+
33
+ ```php
34
+
35
+ $stmt = $db->prepare("INSERT INTO tb (ban, nam, mes, dat)
36
+
37
+ VALUES (NULL, :my_nam, :my_mes, NOW())");
38
+
39
+ $stmt->bindValue(':my_nam', $my_nam, PDO::PARAM_STR);
40
+
41
+ $stmt->bindValue(':my_mes', $my_mes, PDO::PARAM_STR);
42
+
43
+ $stmt->execute();
44
+
45
+ ```
46
+
47
+
48
+
49
+ とかですかね。
50
+
51
+ SQL文字列に、外部からくるデータを直接展開するのは止めましょう。
52
+
53
+ [PDO::prepare](https://www.php.net/manual/ja/pdo.prepare.php)
54
+
55
+ [PDOStatement::bindValue](https://www.php.net/manual/ja/pdostatement.bindvalue.php)
56
+
57
+
58
+
59
+ あと、他の方の指摘にもあるように、データベース処理などする際には、
60
+
61
+ htmlspecialchars()の加工はしません。
62
+
63
+ HTML表示直前に加工して、変数の中身を書き換えることはしないほうが無難です。
64
+
65
+ [PHP で h() を書くなら一緒に echo しよう。 - こせきの技術日記](http://koseki.hatenablog.com/entry/20120216/htmlspecialhonyarara)
66
+
67
+ いわゆるh関数を使いましょうよと。

1

見直し

2021/04/28 00:11

投稿

退会済みユーザー
test CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  データベース用に別のホストが与えられるはず。
4
4
 
5
+ 当然、データベース名も。
6
+
7
+ ユーザーidはサーバーのアカウントと同じ。
8
+
9
+ パスワードはデータベース開設時に自分で入力するはず。
10
+
11
+
12
+
5
13
  コントロールパネルからデータベースの情報を調べて、
6
14
 
7
15
  接続用文字列のlocalhostなどの設定を見直ししてください。