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

回答編集履歴

6

検証コードを追記

2020/05/26 17:54

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -30,24 +30,59 @@
30
30
  (サポートに問い合わせてみてください。)
31
31
 
32
32
  以下、xfreeのPHP・MySQLサーバーでアカウントを作成して確認してみました。
33
+ Mac上でも動くはずなので、双方で動かしてみて違いを確認してみてください。
33
34
  ```PHP
35
+ echo "<pre>";
36
+ //mysqli_resultクラスのメソッド一覧を表示
37
+ var_dump(get_class_methods('mysqli_result'));
38
+
34
- //phpinfo()が使えない設定なのini_get_all()とget_loaded_extension()で確認
39
+ //iniの設定値を取得して、mysqlを含んいる物だけ表示
35
40
  foreach(ini_get_all() as $index => $ini){
36
41
  if(strpos($index,"mysql") !== false){
37
42
  var_dump($index);
38
43
  var_dump($ini);
39
44
  }
40
45
  }
41
-
46
+ //読み込んでいるエクステンションを取得して、mysqlを含んでいるものを表示
42
47
  foreach(get_loaded_extensions() as $extension){
43
48
  if(strpos($extension,"mysql") !== false){
44
49
  var_dump($extension);
45
50
  }
46
51
  }
52
+ echo "</pre>";
47
53
 
48
54
  ```
49
55
 
50
56
  ```結果
57
+
58
+ array(13) {
59
+ [0]=>
60
+ string(11) "__construct"
61
+ [1]=>
62
+ string(5) "close"
63
+ [2]=>
64
+ string(4) "free"
65
+ [3]=>
66
+ string(9) "data_seek"
67
+ [4]=>
68
+ string(11) "fetch_field"
69
+ [5]=>
70
+ string(12) "fetch_fields"
71
+ [6]=>
72
+ string(18) "fetch_field_direct"
73
+ [7]=>
74
+ string(11) "fetch_array"
75
+ [8]=>
76
+ string(11) "fetch_assoc"
77
+ [9]=>
78
+ string(12) "fetch_object"
79
+ [10]=>
80
+ string(9) "fetch_row"
81
+ [11]=>
82
+ string(10) "field_seek"
83
+ [12]=>
84
+ string(11) "free_result"
85
+ }
51
86
  string(25) "mysqli.allow_local_infile"
52
87
  array(3) {
53
88
  ["global_value"]=>
@@ -159,7 +194,6 @@
159
194
  string(6) "mysqli"
160
195
  string(9) "pdo_mysql"
161
196
 
162
-
163
197
  ```
164
198
 
165
199
 

5

追記

2020/05/26 17:54

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -25,8 +25,8 @@
25
25
  原因
26
26
  ---
27
27
  xfreeのPHP・MySQLサーバーではmysqlndが存在しない様に見えるので、
28
- おそらく解決する方法はありません。
28
+ ソースコード修正無しではおそらく解決する方法はありません。
29
- 使いたければ有料のプランを使ってくださいという方針なんだと思います。
29
+ 使えるPHPのバージョンも古(セキュリティ上問題が有り得るバージョン)ですし、ちゃんと使いたければ有料のプランを使ってくださいという方針なんだと思います。
30
30
  (サポートに問い合わせてみてください。)
31
31
 
32
32
  以下、xfreeのPHP・MySQLサーバーでアカウントを作成して確認してみました。

4

修正

2020/05/26 17:37

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  ```PHP
17
17
  if( $res ) {
18
- while ($row = $result->fetch_assoc()) {
18
+ while ($row = $res->fetch_assoc()) {
19
19
  $message_array[] = $row;
20
20
  }
21
21
  }

3

追記

2020/05/26 17:35

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -1,8 +1,33 @@
1
1
  回答
2
2
  ---
3
+
4
+ エラーとしてはmysqli_result::fetch_all()が使えないという事なので、
5
+ ソースコードを修正して
6
+ [mysqli_result::fetch_assoc](https://www.php.net/manual/ja/mysqli-result.fetch-assoc.php)
7
+ を使う様にすれば解決できます。(参照ページのサンプルコードを読んで試してみてください、)
8
+
9
+ 多分こんな感じだと思います。エラーチェックはしてないので、間違ってるかもしれませんが。
10
+ ```PHP
11
+ if( $res ) {
12
+ $message_array = $res->fetch_all(MYSQLI_ASSOC);
13
+ }
14
+ ```
15
+
16
+ ```PHP
17
+ if( $res ) {
18
+ while ($row = $result->fetch_assoc()) {
19
+ $message_array[] = $row;
20
+ }
21
+ }
22
+ ```
23
+
24
+
25
+ 原因
26
+ ---
3
27
  xfreeのPHP・MySQLサーバーではmysqlndが存在しない様に見えるので、
4
- おそらく解決する方法はありません。
28
+ おそらく解決する方法はありません。
5
29
  使いたければ有料のプランを使ってくださいという方針なんだと思います。
30
+ (サポートに問い合わせてみてください。)
6
31
 
7
32
  以下、xfreeのPHP・MySQLサーバーでアカウントを作成して確認してみました。
8
33
  ```PHP

2

追記

2020/05/26 17:33

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -1,3 +1,146 @@
1
+ 回答
2
+ ---
3
+ xfreeのPHP・MySQLサーバーではmysqlndが存在しない様に見えるので、
4
+ おそらく解決する方法はありません。
5
+ 使いたければ有料のプランを使ってくださいという方針なんだと思います。
6
+
7
+ 以下、xfreeのPHP・MySQLサーバーでアカウントを作成して確認してみました。
8
+ ```PHP
9
+ //phpinfo()が使えない設定なのでini_get_all()とget_loaded_extension()で確認
10
+ foreach(ini_get_all() as $index => $ini){
11
+ if(strpos($index,"mysql") !== false){
12
+ var_dump($index);
13
+ var_dump($ini);
14
+ }
15
+ }
16
+
17
+ foreach(get_loaded_extensions() as $extension){
18
+ if(strpos($extension,"mysql") !== false){
19
+ var_dump($extension);
20
+ }
21
+ }
22
+
23
+ ```
24
+
25
+ ```結果
26
+ string(25) "mysqli.allow_local_infile"
27
+ array(3) {
28
+ ["global_value"]=>
29
+ string(1) "1"
30
+ ["local_value"]=>
31
+ string(1) "1"
32
+ ["access"]=>
33
+ int(4)
34
+ }
35
+ string(23) "mysqli.allow_persistent"
36
+ array(3) {
37
+ ["global_value"]=>
38
+ string(1) "1"
39
+ ["local_value"]=>
40
+ string(1) "1"
41
+ ["access"]=>
42
+ int(4)
43
+ }
44
+ string(19) "mysqli.default_host"
45
+ array(3) {
46
+ ["global_value"]=>
47
+ NULL
48
+ ["local_value"]=>
49
+ NULL
50
+ ["access"]=>
51
+ int(7)
52
+ }
53
+ string(19) "mysqli.default_port"
54
+ array(3) {
55
+ ["global_value"]=>
56
+ string(4) "3306"
57
+ ["local_value"]=>
58
+ string(4) "3306"
59
+ ["access"]=>
60
+ int(7)
61
+ }
62
+ string(17) "mysqli.default_pw"
63
+ array(3) {
64
+ ["global_value"]=>
65
+ NULL
66
+ ["local_value"]=>
67
+ NULL
68
+ ["access"]=>
69
+ int(7)
70
+ }
71
+ string(21) "mysqli.default_socket"
72
+ array(3) {
73
+ ["global_value"]=>
74
+ NULL
75
+ ["local_value"]=>
76
+ NULL
77
+ ["access"]=>
78
+ int(7)
79
+ }
80
+ string(19) "mysqli.default_user"
81
+ array(3) {
82
+ ["global_value"]=>
83
+ NULL
84
+ ["local_value"]=>
85
+ NULL
86
+ ["access"]=>
87
+ int(7)
88
+ }
89
+ string(16) "mysqli.max_links"
90
+ array(3) {
91
+ ["global_value"]=>
92
+ string(2) "-1"
93
+ ["local_value"]=>
94
+ string(2) "-1"
95
+ ["access"]=>
96
+ int(4)
97
+ }
98
+ string(21) "mysqli.max_persistent"
99
+ array(3) {
100
+ ["global_value"]=>
101
+ string(2) "-1"
102
+ ["local_value"]=>
103
+ string(2) "-1"
104
+ ["access"]=>
105
+ int(4)
106
+ }
107
+ string(16) "mysqli.reconnect"
108
+ array(3) {
109
+ ["global_value"]=>
110
+ string(1) "0"
111
+ ["local_value"]=>
112
+ string(1) "0"
113
+ ["access"]=>
114
+ int(4)
115
+ }
116
+ string(31) "mysqli.rollback_on_cached_plink"
117
+ array(3) {
118
+ ["global_value"]=>
119
+ string(1) "0"
120
+ ["local_value"]=>
121
+ string(1) "0"
122
+ ["access"]=>
123
+ int(4)
124
+ }
125
+ string(24) "pdo_mysql.default_socket"
126
+ array(3) {
127
+ ["global_value"]=>
128
+ string(25) "/var/lib/mysql/mysql.sock"
129
+ ["local_value"]=>
130
+ string(25) "/var/lib/mysql/mysql.sock"
131
+ ["access"]=>
132
+ int(4)
133
+ }
134
+ string(6) "mysqli"
135
+ string(9) "pdo_mysql"
136
+
137
+
138
+ ```
139
+
140
+
141
+
142
+ 以下、追記前の回答
143
+ ---
1
144
  可能性としては
2
145
 
3
146
  * tdomyさんの回答の通り、mysqlndが有効になっていない

1

補足

2020/05/26 17:27

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -10,7 +10,7 @@
10
10
  ---
11
11
  現状はPHPの環境情報が不明なので
12
12
 
13
- * 回答者が再現できる粒度で、どのOSにどの様にPHPを導入したのかを質問に追記する
13
+ * 回答者が再現できる粒度で、どのOSにどの様にPHPを導入したのかを質問に追記する、レンタルサーバーならサービス名、プラン等出来る限り詳細に記載する
14
14
  * `<?php phpinfo();`だけを記載したPHPファイルをアップロードしてブラウザでアクセスし、mysqlと記載のある部分を質問に追記する
15
15
 
16
16
  ことでより適切な回答が得られるかと思います。