質問編集履歴
1
リクエストメソッドがpostの場合の判定処理(if)を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,8 @@
|
|
10
10
|
② 内容を変更(追記または削除)して保存ボタンを押すと、内容がデータベースに保存される
|
11
11
|
|
12
12
|
### 発生している問題
|
13
|
+
①までは下記コードで実現できました。
|
13
|
-
|
14
|
+
②については、ご指摘に従って、リクエストメソッドがpostの場合の判定処理(if)を書いてみました(以下)。
|
14
15
|
|
15
16
|
### 該当のソースコード
|
16
17
|
|
@@ -19,38 +20,36 @@
|
|
19
20
|
$dsn = "mysql:dbname=*****;host=localhost";
|
20
21
|
$user = "*****";
|
21
22
|
$password = "*****";
|
23
|
+
$table_name = "test"
|
22
24
|
$id = 1;
|
23
25
|
try {
|
24
26
|
$dbh = new PDO($dsn, $user, $password);
|
25
27
|
} catch (PDOException $e){
|
26
28
|
print('connection failed:'.$e->getMessage());
|
27
29
|
}
|
28
|
-
$table_name = "test";
|
29
|
-
$sql = "select * from $table_name where id = $id";
|
30
|
-
$stmt = $dbh->query($sql);
|
31
|
-
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
32
|
-
$contents = $result['contents'];
|
33
30
|
|
31
|
+
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
32
|
+
// POSTでのアクセスではない場合
|
33
|
+
$sql = "SELECT* FROM $table_name WHERE id = $id";
|
34
|
+
$stmt = $dbh->query($sql);
|
35
|
+
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
36
|
+
$contents = $result['contents'];
|
37
|
+
} else {
|
38
|
+
$contents = $_POST['contents'];
|
39
|
+
$sql = "UPDATE $table_name SET contents = $contents WHERE id = $id";
|
40
|
+
$stmt = $dbh->prepare($sql); $stmt->execute();
|
41
|
+
}
|
42
|
+
|
34
|
-
echo "
|
43
|
+
echo "
|
35
44
|
<form method='post'>
|
36
|
-
<textarea name='contents'>
|
45
|
+
<textarea name='contents'>$contents</textarea>
|
37
46
|
<button type='submit'>保存</button>
|
38
|
-
</form>
|
47
|
+
</form>
|
39
|
-
|
48
|
+
";
|
40
49
|
?>
|
41
50
|
```
|
42
51
|
|
43
|
-
### 試したこと
|
44
|
-
|
45
|
-
②を実現するために下記のようなSQLを使うのだと思うのですが、どのように組み込めばよいかわかりませんでした。
|
46
|
-
|
47
|
-
### 該当のソースコード
|
48
|
-
|
49
|
-
```PHP
|
50
|
-
// フォームがサブミットされた場合のPOST処理
|
51
|
-
$contents = $_POST['contents'];
|
52
|
-
|
52
|
+
しかしながら、保存ボタンを押してもデータベースがアップデートされません。特にエラーメッセージも出ないのですが、submitした際に値が正しく取得できていないのでしょうか?
|
53
|
-
```
|
54
53
|
何卒ご教授いただければ幸いです。
|
55
54
|
|
56
55
|
|