teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

エラー内容に関しても記載しておく

2020/06/30 14:30

投稿

rururu3
rururu3

スコア5545

answer CHANGED
@@ -2,4 +2,30 @@
2
2
 
3
3
  [$_POST](https://www.php.net/manual/ja/reserved.variables.post.php)
4
4
 
5
- (`isset`でチェックしてるから変数存在に関してエラーも出ない)
5
+ (`isset`でチェックしてるから変数存在に関してエラーも出ない)
6
+
7
+ ---
8
+
9
+ 記載されているエラーになるのは多分
10
+
11
+ ```php
12
+ // ソース略
13
+ // $postでやってるためisset全てに当てはまらず$targetには何も入ってない
14
+
15
+  //foreachでsql文を作成
16
+ $s = [];
17
+ foreach ($target as $key => $values) {
18
+ $s[] = $target[$key] . " = :" . $target[$key];
19
+ }
20
+
21
+ // $target何も入ってないので$sはから配列
22
+
23
+ $s = implode(",", $s);
24
+
25
+ // $sは空文字が入る
26
+
27
+ $sql = "UPDATE owner_info SET " . $s . " WHERE owner_id = :owner_id"; //名前付きプレースホルダー
28
+ // $sが空文字なのでSQL文法エラーになる(UPDATE owner_info SET WHERE owner_id = :owner_idってなるため)
29
+
30
+ $prepare = $dbh->prepare($sql);
31
+ ```