1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

<自分メモ>MySQLでテーブルの削除、新規作成後、ターミナルでテーブルのデータが表示できず実行エラーになってしまう(mac,PHP,Docker)

Posted at

#環境
Docker Composeでappコンテナとdbコンテナを立ち上げる
↓docker-compose.yml
appコンテナ php:7.4-apache
dbコンテナ mysql:5.5

既存のMySQLテーブルを削除、新規作成し、ターミナルで動作確認する。
#行ったこと
1.テーブルをDROP TABLE IF EXISTS テーブル名で削除し、新しいテーブルの作成をする。

2.テーブルが出来ているか、MySQLで確認。SHOW TABLES;無事確認。
SELECT * FROM memo;でテーブルを確認。

MySQL [book_log]> SELECT * FROM memo;
+----+------+
| id | memo |
+----+------+
|  1 |      |
+----+------+

謎の空白ができてしまい。調子が悪いのかなと再度登録。
無事登録できたのですが、ターミナルでの実行結果がエラー。

MySQL [book_log]> SELECT * FROM memo;
+----+-----------+
| id | memo      |
+----+-----------+
|  1 |           |
|  2 | テスト      |
|  3 | テスト      |
+----+-----------+

```
↓ターミナル

```
[メモ一覧表示]
[10-Dec-2020 20:46:31 Asia/Tokyo] PHP Warning:  mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in /var/www/html/tmp/memo.php on line 35

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in /var/www/html/tmp/memo.php on line 35
[10-Dec-2020 20:46:31 Asia/Tokyo] PHP Warning:  mysqli_free_result() expects parameter 1 to be mysqli_result, bool given in /var/www/html/tmp/memo.php on line 40

Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, bool given in /var/www/html/tmp/memo.php on line 40
```

翻訳

```
1行目
mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待していますが、これは /var/www/html/tmp/memo.php の 35 行目で指定された bool です。
2行目
mysqli_fetch_assoc()は、パラメーター1がmysqli_resultであると想定しています。
3行目
警告: mysqli_free_result() は、40 行目の /var/www/html/tmp/memo.php でパラメータ 1 を mysqli_result, bool とします。
4行目
警告: mysqli_free_result() は、40 行目の /var/www/html/tmp/memo.php でパラメータ 1 を mysqli_result, bool とします。
```
この結果から先ず、どんな値を取得しているのか、var_dumpで確認すると
falseになっていました

上手くデータを取得できていないという事なのかな思い、[以前](https://qiita.com/sakuma-s-Qiita/items/9f41babc0bfc698fc43e) 書いた記事と同じ現象だったので実行することに。
<strong>MySQLを終了し、dockerをストップ、dockerを再度起動させ、MySQLを起動。</strong>
この流れで再度、ターミナルで実行してみると成功!!

```
番号を選択してください:2

[メモ一覧表示]
1

----------------
2
テスト
----------------
3
テスト
----------------
4
テスト2
----------------
5
テストする
----------------
```

無事表示されました!!!
Dockerの仕組みの理解がかなり不足している痛感いたしました。

何かご指摘やお気づきのことがあれば初学者の自分にとって凄くありがたいことなので是非、お願いいたします!!!!!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?