回答編集履歴

3

フォルダー権限書きミス

2017/10/24 12:27

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- また、フォルダーの権限は0755以上でしょうか?
11
+ また、フォルダーの権限は0766以上でしょうか?
12
12
 
13
13
  そちらもご確認ください。
14
14
 

2

配列の指定を、PHP5では使えない書き方をしていたのでそれを修正

2017/10/24 12:27

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  # プレースホルダーに渡す値を指定
58
58
 
59
- $data = [
59
+ $data = array(
60
60
 
61
61
  'comment1' => $comment1
62
62
 
@@ -68,7 +68,7 @@
68
68
 
69
69
  , 'TimeStamp' => $now
70
70
 
71
- ];
71
+ );
72
72
 
73
73
 
74
74
 

1

蛇足追加

2017/10/24 12:19

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -11,3 +11,77 @@
11
11
  また、フォルダーの権限は0755以上でしょうか?
12
12
 
13
13
  そちらもご確認ください。
14
+
15
+
16
+
17
+ ---
18
+
19
+
20
+
21
+ ちなみに私は、さくらのレンタルサーバライトプランでSQLiteを使用しておりますが、問題なく書き込めます。(SQLiteクラスは使っていませんが)
22
+
23
+
24
+
25
+ PDOを使うと安全性もあり、私の環境では動作しているので、参考までに。
26
+
27
+
28
+
29
+ ```PHP
30
+
31
+ # データベースへ接続するモデルのインスタンス化
32
+
33
+ $pdo = new PDO('sqlite:データベースのファイル名', '', '');
34
+
35
+
36
+
37
+ # 常にFETCH_ASSOC(SQLiteはfetch結果の配列に、通し番号を含めてくるのでそれを排除。この処理はしなくても良い)
38
+
39
+ $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
40
+
41
+
42
+
43
+ # SQL文の準備(「:文字列」はプレースホルダーと呼ばれるもの。ここに値をあとで代入する。SQLインジェクション対策とかになる)
44
+
45
+ $sql = 'INSERT INTO testtable
46
+
47
+ (com1, com2, com3, com4, TimeStamp)
48
+
49
+ VALUES
50
+
51
+ (:comment1, :comment2, :comment3, :comment4, :TimeStamp)
52
+
53
+ ';
54
+
55
+
56
+
57
+ # プレースホルダーに渡す値を指定
58
+
59
+ $data = [
60
+
61
+ 'comment1' => $comment1
62
+
63
+ , 'comment2' => $comment2
64
+
65
+ , 'comment3' => $comment3
66
+
67
+ , 'comment4' => $comment4
68
+
69
+ , 'TimeStamp' => $now
70
+
71
+ ];
72
+
73
+
74
+
75
+ # プリペアステートメント(SQL文の設定的なやつ。文字列から)
76
+
77
+ $stmt = $pdo->prepare($sql);
78
+
79
+
80
+
81
+ # プレースホルダーに値を渡し、SQLを実行
82
+
83
+ $stmt->execute($data);
84
+
85
+
86
+
87
+ ````