回答編集履歴
3
フォルダー権限書きミス
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|

|
5
5
|
|
6
|
-
また、フォルダーの権限は
|
6
|
+
また、フォルダーの権限は0766以上でしょうか?
|
7
7
|
そちらもご確認ください。
|
8
8
|
|
9
9
|
---
|
2
配列の指定を、PHP5では使えない書き方をしていたのでそれを修正
answer
CHANGED
@@ -27,13 +27,13 @@
|
|
27
27
|
';
|
28
28
|
|
29
29
|
# プレースホルダーに渡す値を指定
|
30
|
-
$data =
|
30
|
+
$data = array(
|
31
31
|
'comment1' => $comment1
|
32
32
|
, 'comment2' => $comment2
|
33
33
|
, 'comment3' => $comment3
|
34
34
|
, 'comment4' => $comment4
|
35
35
|
, 'TimeStamp' => $now
|
36
|
-
|
36
|
+
);
|
37
37
|
|
38
38
|
# プリペアステートメント(SQL文の設定的なやつ。文字列から)
|
39
39
|
$stmt = $pdo->prepare($sql);
|
1
蛇足追加
answer
CHANGED
@@ -4,4 +4,41 @@
|
|
4
4
|

|
5
5
|
|
6
6
|
また、フォルダーの権限は0755以上でしょうか?
|
7
|
-
そちらもご確認ください。
|
7
|
+
そちらもご確認ください。
|
8
|
+
|
9
|
+
---
|
10
|
+
|
11
|
+
ちなみに私は、さくらのレンタルサーバライトプランでSQLiteを使用しておりますが、問題なく書き込めます。(SQLiteクラスは使っていませんが)
|
12
|
+
|
13
|
+
PDOを使うと安全性もあり、私の環境では動作しているので、参考までに。
|
14
|
+
|
15
|
+
```PHP
|
16
|
+
# データベースへ接続するモデルのインスタンス化
|
17
|
+
$pdo = new PDO('sqlite:データベースのファイル名', '', '');
|
18
|
+
|
19
|
+
# 常にFETCH_ASSOC(SQLiteはfetch結果の配列に、通し番号を含めてくるのでそれを排除。この処理はしなくても良い)
|
20
|
+
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
|
21
|
+
|
22
|
+
# SQL文の準備(「:文字列」はプレースホルダーと呼ばれるもの。ここに値をあとで代入する。SQLインジェクション対策とかになる)
|
23
|
+
$sql = 'INSERT INTO testtable
|
24
|
+
(com1, com2, com3, com4, TimeStamp)
|
25
|
+
VALUES
|
26
|
+
(:comment1, :comment2, :comment3, :comment4, :TimeStamp)
|
27
|
+
';
|
28
|
+
|
29
|
+
# プレースホルダーに渡す値を指定
|
30
|
+
$data = [
|
31
|
+
'comment1' => $comment1
|
32
|
+
, 'comment2' => $comment2
|
33
|
+
, 'comment3' => $comment3
|
34
|
+
, 'comment4' => $comment4
|
35
|
+
, 'TimeStamp' => $now
|
36
|
+
];
|
37
|
+
|
38
|
+
# プリペアステートメント(SQL文の設定的なやつ。文字列から)
|
39
|
+
$stmt = $pdo->prepare($sql);
|
40
|
+
|
41
|
+
# プレースホルダーに値を渡し、SQLを実行
|
42
|
+
$stmt->execute($data);
|
43
|
+
|
44
|
+
````
|