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

回答編集履歴

1

エラー行数を考慮してないのを修正

2020/06/08 10:49

投稿

rururu3
rururu3

スコア5545

answer CHANGED
@@ -2,5 +2,29 @@
2
2
 
3
3
  `mysqli_fetch_assoc`の関数の引数に`mysqli_result`を要求してるけど、`boolean`型の値が渡されました。って書いてます。
4
4
 
5
+ 53行目なので
6
+
7
+ ```php
8
+ //会員情報Tbを更新
9
+ //使用者IDの更新SQL文を用意
10
+ $sql2 = sprintf('UPDATE m_member SET member_id = "%s" WHERE id = "%d" and member_id = "%s"',$input_AfterID , $_SESSION['id'], $input_BeforeID);
11
+
12
+ //SQL文を実行処理に代入
13
+ $query2 = mysqli_query($db, $sql2) or die(mysqli_errno($db)); // ここが53行目
14
+
15
+ //実行した結果をセット
16
+ $row2 = mysqli_fetch_assoc($query2);
17
+ ```
5
- `$query1 = mysqli_query($db, $sql1);`
18
+ ` $query2 = mysqli_query($db, $sql2) or die(mysqli_errno($db));`
6
- の結果が何らかのエラーで`false`が帰ってるのではないかと思います。
19
+ の結果で`true`が帰ってるのではないかと思います。
20
+
21
+ [mysqli_query](https://www.php.net/manual/ja/mysqli.query.php)
22
+
23
+ > 失敗した場合に FALSE を返します。 SELECT, SHOW, DESCRIBE あるいは EXPLAIN が成功した場合は、mysqli_query() は mysqli_result オブジェクトを返します。それ以外のクエリが成功した場合は、 mysqli_query() は TRUE を返します。
24
+
25
+ なので
26
+ ```php
27
+ //実行した結果をセット
28
+ $row2 = mysqli_fetch_assoc($query2);
29
+ ```
30
+ をしてはいけません