質問編集履歴
12
a.phpに$sqlに関係しそうな部分を元のファイルよりもどした。
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,8 @@
|
|
7
7
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 227
|
8
8
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 231
|
9
9
|
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\html\functioni.php on line 241
|
10
|
-
現在は、c.phpで
|
10
|
+
現在は、c.phpでWarning: Invalid argument supplied for foreach() in C:\xampp\htdocs\html\output\schedule.php on line 50
|
11
|
+
50行目はforeach($ary_imm as $key => $value){?>
|
11
12
|
となっています。
|
12
13
|
正常動作するコードは、
|
13
14
|
```PHP
|
@@ -204,10 +205,11 @@
|
|
204
205
|
実際には*1は不要なので削除しています。
|
205
206
|
|
206
207
|
教えていただいたサンプルコードを基にa.phpを変更しました。当初のエラーは出なくなりましたが別のc.php(実際に抽出して画面表示するプログラム)でエラーを表示しました。
|
207
|
-
|
208
|
+
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\html\output\schedule.php on line 50
|
208
|
-
|
209
|
+
50行目は、foreach($ary_imm as $key => $value){?>
|
209
210
|
```PHP
|
210
211
|
a.php
|
212
|
+
function get_sql_data($sql,$charset = "SJIS",$flag = 0){
|
211
213
|
$link = mysqli_connect("localhost", "root", "estouest");
|
212
214
|
|
213
215
|
if(mysqli_connect_errno() > 0){
|
@@ -223,6 +225,8 @@
|
|
223
225
|
|
224
226
|
}
|
225
227
|
mysqli_set_charset($link,"utf8");
|
228
|
+
|
229
|
+
$sql = mb_convert_encoding($sql,CHARDB,CHAR2);
|
226
230
|
$result = mysqli_query($link, "SELECT* FROM news");
|
227
231
|
if (!$result) {
|
228
232
|
die("クエリーが失敗" . mysqli_error());
|
@@ -231,8 +235,13 @@
|
|
231
235
|
while($row = mysqli_fetch_assoc($result)){
|
232
236
|
array_push($ary,$row);
|
233
237
|
}
|
238
|
+
|
239
|
+
|
240
|
+
|
234
241
|
// MySQLの切断
|
242
|
+
|
235
243
|
mysqli_free_result($result);
|
244
|
+
}
|
236
245
|
|
237
246
|
|
238
247
|
|
11
エラー内容を書き換えました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -82,16 +82,44 @@
|
|
82
82
|
```
|
83
83
|
|
84
84
|
### 発生している問題・エラーメッセージ
|
85
|
+
エラーは、Fatal error: Call to undefined function get_sql_data() in C:\xampp\htdocs\html\output\c.php on line 30
|
85
|
-
|
86
|
+
30行目は、$ary_imm = get_sql_data($sql);
|
86
87
|
```php
|
88
|
+
エラーの出たc.phpの一部
|
89
|
+
<?php
|
90
|
+
intval($year);
|
91
|
+
$year1 = $year+1;
|
92
|
+
$year2 = $year;
|
93
|
+
//**************************************************************************************
|
94
|
+
// ■ Loading MySQL
|
95
|
+
//**************************************************************************************
|
96
|
+
include("a.phpとb.php.php");
|
97
|
+
if($year != 2019){
|
98
|
+
$sql = "SELECT * FROM auctionresults WHERE start > '".$year2."' and start < '".$year1."' ";
|
99
|
+
}else{
|
100
|
+
$sql = "SELECT * FROM auctionresults WHERE start >= '".$year."' ";
|
101
|
+
}
|
87
|
-
|
102
|
+
$sql .= "ORDER BY start DESC ";
|
103
|
+
$ary_imm = get_sql_data($sql);
|
104
|
+
@mysqli_close($db);
|
88
|
-
|
105
|
+
//**************************************************************************************
|
89
106
|
|
107
|
+
function compareDate($year1, $month1, $day1, $year2, $month2, $day2) {
|
108
|
+
$dt1 = mktime(0, 0, 0, $month1, $day1, $year1);
|
109
|
+
$dt2 = mktime(0, 0, 0, $month2, $day2, $year2);
|
90
|
-
|
110
|
+
$diff = $dt1 - $dt2;
|
91
|
-
|
111
|
+
$diffDay = ceil($diff / 86400);//1日は86400秒
|
112
|
+
return $diffDay;
|
113
|
+
}
|
92
114
|
|
93
|
-
|
115
|
+
foreach($ary_imm as $key => $value){?>
|
116
|
+
<section class="schedule" <?php if($key%2 == 0){ print "style='background-color:#fafafa;'"; }?>>
|
117
|
+
<?php
|
118
|
+
$filename = 'images/books/cover'.$ary_imm[$key]["id"].'.jpg';
|
94
|
-
|
119
|
+
if(file_exists($filename)){ $bookscover = $ary_imm[$key]["id"]; }else{ $bookscover = "noimage"; }
|
120
|
+
?>
|
121
|
+
<img src="images/books/cover<?php print $bookscover;?>.jpg" alt="cover" style="float:left;width:115px; height:150px; margin-right:20px; border:1px solid #ccc;"/>
|
122
|
+
|
95
123
|
```
|
96
124
|
### 該当のソースコード
|
97
125
|
```php
|
@@ -208,40 +236,6 @@
|
|
208
236
|
|
209
237
|
|
210
238
|
|
211
|
-
エラーの出たc.phpの一部
|
212
|
-
<?php
|
213
|
-
intval($year);
|
214
|
-
$year1 = $year+1;
|
215
|
-
$year2 = $year;
|
216
|
-
//**************************************************************************************
|
217
|
-
// ■ Loading MySQL
|
218
|
-
//**************************************************************************************
|
219
|
-
include("a.phpとb.php.php");
|
220
|
-
if($year != 2019){
|
221
|
-
$sql = "SELECT * FROM auctionresults WHERE start > '".$year2."' and start < '".$year1."' ";
|
222
|
-
}else{
|
223
|
-
$sql = "SELECT * FROM auctionresults WHERE start >= '".$year."' ";
|
224
|
-
}
|
225
|
-
$sql .= "ORDER BY start DESC ";
|
226
|
-
$ary_imm = get_sql_data($sql);
|
227
|
-
@mysqli_close($db);
|
228
|
-
//**************************************************************************************
|
229
239
|
|
230
|
-
function compareDate($year1, $month1, $day1, $year2, $month2, $day2) {
|
231
|
-
$dt1 = mktime(0, 0, 0, $month1, $day1, $year1);
|
232
|
-
$dt2 = mktime(0, 0, 0, $month2, $day2, $year2);
|
233
|
-
$diff = $dt1 - $dt2;
|
234
|
-
$diffDay = ceil($diff / 86400);//1日は86400秒
|
235
|
-
return $diffDay;
|
236
|
-
}
|
237
|
-
|
238
|
-
foreach($ary_imm as $key => $value){?>
|
239
|
-
<section class="schedule" <?php if($key%2 == 0){ print "style='background-color:#fafafa;'"; }?>>
|
240
|
-
<?php
|
241
|
-
$filename = 'images/books/cover'.$ary_imm[$key]["id"].'.jpg';
|
242
|
-
if(file_exists($filename)){ $bookscover = $ary_imm[$key]["id"]; }else{ $bookscover = "noimage"; }
|
243
|
-
?>
|
244
|
-
<img src="images/books/cover<?php print $bookscover;?>.jpg" alt="cover" style="float:left;width:115px; height:150px; margin-right:20px; border:1px solid #ccc;"/>
|
245
|
-
|
246
240
|
```
|
247
241
|
### 補足情報(FW/ツールのバージョンなど)
|
10
当初のエラーは出なくなったが、表示PGで新たなエラーが出ています。
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,13 +2,17 @@
|
|
2
2
|
素人です。すみませんが助けてください。php5.6からphp7に対応しようと思っています。
|
3
3
|
php5.6の状態でプログラムを書き換えてテストしています。
|
4
4
|
mysqlをmysqliに書き換えましたが、画面が真っ白になってしまいます。
|
5
|
-
思い当たる二つのプログラムのmysqlをmysqliに変更しました。
|
5
|
+
思い当たる二つのプログラム(a.phpとb.php)のmysqlをmysqliに変更しました。
|
6
6
|
以下のようにエラーがあるとこがわかりました。
|
7
7
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 227
|
8
8
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 231
|
9
9
|
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\html\functioni.php on line 241
|
10
|
+
現在は、c.phpでFatal error: Call to undefined function get_sql_data() in C:\xampp\htdocs\html\output\c.php on line 30
|
11
|
+
となっています。
|
10
12
|
正常動作するコードは、
|
11
13
|
```PHP
|
14
|
+
//////////////// 一つ目 ////////////////////////
|
15
|
+
a.php
|
12
16
|
function get_sql_data($sql,$charset = "SJIS",$flag = 0){
|
13
17
|
//文字セットSQLを実行
|
14
18
|
mysql_query("SET NAMES ".CHARDB); //SJIS対応
|
@@ -37,6 +41,7 @@
|
|
37
41
|
mysql_free_result($rs);
|
38
42
|
}
|
39
43
|
//////////////// 二つ目 ////////////////////////
|
44
|
+
b.php
|
40
45
|
<?php
|
41
46
|
if (empty($dbHandle)) {
|
42
47
|
|
@@ -170,49 +175,73 @@
|
|
170
175
|
上記*1のように結果を表示してみたところ画面にはDefault database is ******. Default database is ******. と表示しているのでデータベースにはアクセスできていると思っています。
|
171
176
|
実際には*1は不要なので削除しています。
|
172
177
|
|
173
|
-
教えていただいたサンプルコードを
|
178
|
+
教えていただいたサンプルコードを基にa.phpを変更しました。当初のエラーは出なくなりましたが別のc.php(実際に抽出して画面表示するプログラム)でエラーを表示しました。
|
179
|
+
Fatal error: Call to undefined function get_sql_data() in C:\xampp\htdocs\html\output\c.php on line 30
|
180
|
+
30行目は、$ary_imm = get_sql_data($sql);
|
174
181
|
```PHP
|
182
|
+
a.php
|
175
|
-
|
183
|
+
$link = mysqli_connect("localhost", "root", "estouest");
|
176
|
-
$dbh = connect_db();
|
177
|
-
try{
|
178
|
-
$rs = mysqli_query($dbh,$sql);
|
179
184
|
|
180
|
-
//データを返す
|
181
|
-
|
185
|
+
if(mysqli_connect_errno() > 0){
|
182
|
-
|
186
|
+
|
183
|
-
|
187
|
+
die("接続失敗" . mysqli_connect_error());
|
184
|
-
|
188
|
+
|
185
|
-
//レコード返却
|
186
|
-
//蛇足コメント:whileでfetchしても結局全行取り出すならmysqli_fetch_allで第2引数オプション指定するだけでいい
|
187
|
-
return mysqli_fetch_all($rs,MYSQLI_ASSOC);
|
188
|
-
}
|
189
|
-
}catch(mysqli_sql_exception $e){
|
190
|
-
var_dump($e);
|
191
|
-
die();
|
192
|
-
}
|
193
|
-
//dbの解放は余程でかい処理をする以外は自動でされるのでなくてもいいと思う。
|
194
189
|
}
|
190
|
+
$db = mysqli_select_db($link, "est-ouest");
|
195
191
|
|
196
|
-
|
192
|
+
if (!$db){
|
197
|
-
|
193
|
+
|
198
|
-
$dbh = mysqli_connect("localhost", "root", "****", "*****"); //MySQL接続
|
199
|
-
if (mysqli_connect_errno()) {
|
200
|
-
|
194
|
+
die("データベースの選択失敗" . mysqli_error());
|
201
|
-
|
195
|
+
|
202
|
-
}
|
203
|
-
}catch(mysqli_sql_exception $e){
|
204
|
-
var_dump($e);
|
205
|
-
die();
|
206
|
-
}
|
207
|
-
return $dbh;
|
208
196
|
}
|
197
|
+
mysqli_set_charset($link,"utf8");
|
198
|
+
$result = mysqli_query($link, "SELECT* FROM news");
|
199
|
+
if (!$result) {
|
200
|
+
die("クエリーが失敗" . mysqli_error());
|
201
|
+
}
|
202
|
+
$ary = array();
|
203
|
+
while($row = mysqli_fetch_assoc($result)){
|
204
|
+
array_push($ary,$row);
|
205
|
+
}
|
206
|
+
// MySQLの切断
|
207
|
+
mysqli_free_result($result);
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
エラーの出たc.phpの一部
|
212
|
+
<?php
|
213
|
+
intval($year);
|
214
|
+
$year1 = $year+1;
|
215
|
+
$year2 = $year;
|
216
|
+
//**************************************************************************************
|
217
|
+
// ■ Loading MySQL
|
218
|
+
//**************************************************************************************
|
219
|
+
include("a.phpとb.php.php");
|
220
|
+
if($year != 2019){
|
221
|
+
$sql = "SELECT * FROM auctionresults WHERE start > '".$year2."' and start < '".$year1."' ";
|
222
|
+
}else{
|
223
|
+
$sql = "SELECT * FROM auctionresults WHERE start >= '".$year."' ";
|
224
|
+
}
|
225
|
+
$sql .= "ORDER BY start DESC ";
|
209
|
-
|
226
|
+
$ary_imm = get_sql_data($sql);
|
227
|
+
@mysqli_close($db);
|
228
|
+
//**************************************************************************************
|
229
|
+
|
230
|
+
function compareDate($year1, $month1, $day1, $year2, $month2, $day2) {
|
231
|
+
$dt1 = mktime(0, 0, 0, $month1, $day1, $year1);
|
232
|
+
$dt2 = mktime(0, 0, 0, $month2, $day2, $year2);
|
233
|
+
$diff = $dt1 - $dt2;
|
234
|
+
$diffDay = ceil($diff / 86400);//1日は86400秒
|
235
|
+
return $diffDay;
|
236
|
+
}
|
237
|
+
|
238
|
+
foreach($ary_imm as $key => $value){?>
|
239
|
+
<section class="schedule" <?php if($key%2 == 0){ print "style='background-color:#fafafa;'"; }?>>
|
240
|
+
<?php
|
241
|
+
$filename = 'images/books/cover'.$ary_imm[$key]["id"].'.jpg';
|
242
|
+
if(file_exists($filename)){ $bookscover = $ary_imm[$key]["id"]; }else{ $bookscover = "noimage"; }
|
243
|
+
?>
|
244
|
+
<img src="images/books/cover<?php print $bookscover;?>.jpg" alt="cover" style="float:left;width:115px; height:150px; margin-right:20px; border:1px solid #ccc;"/>
|
245
|
+
|
210
246
|
```
|
211
|
-
### 補足情報(FW/ツールのバージョンなど)
|
247
|
+
### 補足情報(FW/ツールのバージョンなど)
|
212
|
-
良くわからないのですが、現状の正しく表示している方は、
|
213
|
-
if ($result = mysql_query($dbHandle, "SELECT DATABASE()")) {
|
214
|
-
$row = mysql_fetch_row($result);
|
215
|
-
printf("Default database is %s.\n", $row[0]);
|
216
|
-
mysql_free_result($result);
|
217
|
-
}
|
218
|
-
を追加しても答えが得られず、でもデータベースの内容を表示しています。
|
9
やってみたことに追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -169,6 +169,45 @@
|
|
169
169
|
### 試したこと
|
170
170
|
上記*1のように結果を表示してみたところ画面にはDefault database is ******. Default database is ******. と表示しているのでデータベースにはアクセスできていると思っています。
|
171
171
|
実際には*1は不要なので削除しています。
|
172
|
+
|
173
|
+
教えていただいたサンプルコードを最初のコードに入れてみましたがエラーも何も表示されなかった。
|
174
|
+
```PHP
|
175
|
+
function get_sql_data(String $sql,Bool $record_count = true):array{
|
176
|
+
$dbh = connect_db();
|
177
|
+
try{
|
178
|
+
$rs = mysqli_query($dbh,$sql);
|
179
|
+
|
180
|
+
//データを返す
|
181
|
+
if($record_count){
|
182
|
+
//レコード数取得
|
183
|
+
return ["count"=>mysqli_num_rows($rs)];
|
184
|
+
} else {
|
185
|
+
//レコード返却
|
186
|
+
//蛇足コメント:whileでfetchしても結局全行取り出すならmysqli_fetch_allで第2引数オプション指定するだけでいい
|
187
|
+
return mysqli_fetch_all($rs,MYSQLI_ASSOC);
|
188
|
+
}
|
189
|
+
}catch(mysqli_sql_exception $e){
|
190
|
+
var_dump($e);
|
191
|
+
die();
|
192
|
+
}
|
193
|
+
//dbの解放は余程でかい処理をする以外は自動でされるのでなくてもいいと思う。
|
194
|
+
}
|
195
|
+
|
196
|
+
function connect_db(){
|
197
|
+
try{
|
198
|
+
$dbh = mysqli_connect("localhost", "root", "****", "*****"); //MySQL接続
|
199
|
+
if (mysqli_connect_errno()) {
|
200
|
+
printf("Connect failed: %s\n", mysqli_connect_error());
|
201
|
+
die();
|
202
|
+
}
|
203
|
+
}catch(mysqli_sql_exception $e){
|
204
|
+
var_dump($e);
|
205
|
+
die();
|
206
|
+
}
|
207
|
+
return $dbh;
|
208
|
+
}
|
209
|
+
var_dump(get_sql_data($sql,false));
|
210
|
+
```
|
172
211
|
### 補足情報(FW/ツールのバージョンなど)
|
173
212
|
良くわからないのですが、現状の正しく表示している方は、
|
174
213
|
if ($result = mysql_query($dbHandle, "SELECT DATABASE()")) {
|
8
エラー内容変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -77,10 +77,16 @@
|
|
77
77
|
```
|
78
78
|
|
79
79
|
### 発生している問題・エラーメッセージ
|
80
|
+
エラー個所は3ヵ所あります。エラー内容は以下の通りです。
|
80
81
|
```php
|
82
|
+
1. mysqli_query(CHARDB."SET NAMES ");
|
81
83
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 227
|
84
|
+
|
85
|
+
2. $rs = mysqli_query($sql);
|
82
86
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 231
|
87
|
+
|
88
|
+
3. while($row = mysqli_fetch_array($rs)){ array_push($ary,$row); }
|
83
|
-
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in
|
89
|
+
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in c:\xampp\htdocs\html\functioni.php on line 241
|
84
90
|
```
|
85
91
|
### 該当のソースコード
|
86
92
|
```php
|
7
変更前コードの提示
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,14 +7,79 @@
|
|
7
7
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 227
|
8
8
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 231
|
9
9
|
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\html\functioni.php on line 241
|
10
|
+
正常動作するコードは、
|
11
|
+
```PHP
|
12
|
+
function get_sql_data($sql,$charset = "SJIS",$flag = 0){
|
13
|
+
//文字セットSQLを実行
|
14
|
+
mysql_query("SET NAMES ".CHARDB); //SJIS対応
|
10
15
|
|
16
|
+
//SQLを実行
|
17
|
+
$sql = mb_convert_encoding($sql,CHARDB,CHAR2);
|
18
|
+
$rs = mysql_query($sql);
|
11
19
|
|
20
|
+
//データを返す
|
21
|
+
if($flag == 1){
|
22
|
+
//レコード数取得
|
23
|
+
$rwcnt = mysql_num_rows($rs);
|
24
|
+
return $rwcnt;
|
25
|
+
} else {
|
26
|
+
//レコードをリスト化
|
27
|
+
$ary = array();
|
28
|
+
while($row = mysql_fetch_array($rs)){
|
29
|
+
array_push($ary,$row);
|
30
|
+
}
|
31
|
+
|
32
|
+
mb_convert_variables(CHAR2 , CHARDB , $ary);
|
33
|
+
return $ary;
|
34
|
+
}
|
35
|
+
|
36
|
+
//データを開放
|
37
|
+
mysql_free_result($rs);
|
38
|
+
}
|
39
|
+
//////////////// 二つ目 ////////////////////////
|
40
|
+
<?php
|
41
|
+
if (empty($dbHandle)) {
|
42
|
+
|
43
|
+
if($_SERVER['SERVER_NAME']=="www.***.co.jp" or $_SERVER['SERVER_NAME']=="***.co.jp"){
|
44
|
+
$mysqlHst = "****.ne.jp";//UTF8 DB
|
45
|
+
$mysqlUsr = "+++++";
|
46
|
+
$mysqlPsw = "-----";
|
47
|
+
$mysqlDB = "*****";
|
48
|
+
}elseif($_SERVER['SERVER_NAME']=="www.***.jp" or $_SERVER['SERVER_NAME']=="***.jp"){
|
49
|
+
$mysqlHst = "****.ne.jp";//UTF8 DB
|
50
|
+
$mysqlUsr = "+++++";
|
51
|
+
$mysqlPsw = "-----";
|
52
|
+
$mysqlDB = "*****";
|
53
|
+
}elseif($_SERVER['SERVER_NAME']=="***.jp"){
|
54
|
+
$mysqlHst = "****.ne.jp";//UTF8 DB
|
55
|
+
$mysqlUsr = "+++++";
|
56
|
+
$mysqlPsw = "-----";
|
57
|
+
$mysqlDB = "est-ouest";
|
58
|
+
}else{
|
59
|
+
$mysqlHst = "localhost";//UTF8 DB
|
60
|
+
$mysqlUsr = "root";
|
61
|
+
$mysqlPsw = "-----";
|
62
|
+
$mysqlDB = "*****";
|
63
|
+
}
|
64
|
+
|
65
|
+
$dbHandle = @mysql_connect($mysqlHst, $mysqlUsr, $mysqlPsw); //MySQL接続
|
66
|
+
if ($dbHandle == False) {
|
67
|
+
print("SQL Server connection error\n");
|
68
|
+
exit;
|
69
|
+
}
|
70
|
+
|
71
|
+
if(!mysql_select_db($mysqlDB, $dbHandle)) { //データベース接続
|
72
|
+
print("Database connection error\n");
|
73
|
+
exit;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
?>
|
77
|
+
```
|
78
|
+
|
12
79
|
### 発生している問題・エラーメッセージ
|
13
80
|
```php
|
14
81
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 227
|
15
|
-
|
16
82
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 231
|
17
|
-
|
18
83
|
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\html\functioni.php on line 241
|
19
84
|
```
|
20
85
|
### 該当のソースコード
|
6
質問内容修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,8 +3,12 @@
|
|
3
3
|
php5.6の状態でプログラムを書き換えてテストしています。
|
4
4
|
mysqlをmysqliに書き換えましたが、画面が真っ白になってしまいます。
|
5
5
|
思い当たる二つのプログラムのmysqlをmysqliに変更しました。
|
6
|
-
|
6
|
+
以下のようにエラーがあるとこがわかりました。
|
7
|
+
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 227
|
8
|
+
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 231
|
9
|
+
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\html\functioni.php on line 241
|
7
10
|
|
11
|
+
|
8
12
|
### 発生している問題・エラーメッセージ
|
9
13
|
```php
|
10
14
|
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 227
|
5
記述修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,13 +17,13 @@
|
|
17
17
|
```php
|
18
18
|
function get_sql_data($sql,$charset = "SJIS",$flag = 0){
|
19
19
|
//文字セットSQLを実行
|
20
|
-
|
20
|
+
mysqli_query(CHARDB."SET NAMES "); //SJIS対応
|
21
21
|
|
22
22
|
//SQLを実行
|
23
23
|
$sql = mb_convert_encoding($sql,CHARDB,CHAR2);
|
24
|
-
|
24
|
+
$rs = mysqli_query($sql);
|
25
|
-
|
25
|
+
|
26
|
-
|
26
|
+
//データを返す
|
27
27
|
if($flag == 1){
|
28
28
|
//レコード数取得
|
29
29
|
$rwcnt = mysqli_num_rows($rs);
|
@@ -31,8 +31,8 @@
|
|
31
31
|
} else {
|
32
32
|
//レコードをリスト化
|
33
33
|
$ary = array();
|
34
|
-
|
34
|
+
while($row = mysqli_fetch_array($rs)){
|
35
|
-
|
35
|
+
array_push($ary,$row);
|
36
36
|
}
|
37
37
|
|
38
38
|
mb_convert_variables(CHAR2 , CHARDB , $ary);
|
4
エラー内容を入れました
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,7 +6,13 @@
|
|
6
6
|
それともまったく見当違いなのでしょうか。
|
7
7
|
|
8
8
|
### 発生している問題・エラーメッセージ
|
9
|
-
|
9
|
+
```php
|
10
|
+
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 227
|
11
|
+
|
12
|
+
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\html\functioni.php on line 231
|
13
|
+
|
14
|
+
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\html\functioni.php on line 241
|
15
|
+
```
|
10
16
|
### 該当のソースコード
|
11
17
|
```php
|
12
18
|
function get_sql_data($sql,$charset = "SJIS",$flag = 0){
|
@@ -85,7 +91,7 @@
|
|
85
91
|
}
|
86
92
|
|
87
93
|
```
|
88
|
-
|
94
|
+
### 試したこと
|
89
95
|
上記*1のように結果を表示してみたところ画面にはDefault database is ******. Default database is ******. と表示しているのでデータベースにはアクセスできていると思っています。
|
90
96
|
実際には*1は不要なので削除しています。
|
91
97
|
### 補足情報(FW/ツールのバージョンなど)
|
3
エラーがあった部分を斜体文字に変更しました。マニュアル見てますがどう直せばよいやら。。。
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,13 +11,13 @@
|
|
11
11
|
```php
|
12
12
|
function get_sql_data($sql,$charset = "SJIS",$flag = 0){
|
13
13
|
//文字セットSQLを実行
|
14
|
-
mysqli_query(CHARDB."SET NAMES "); //SJIS対応
|
14
|
+
__**mysqli_query(CHARDB."SET NAMES ");**__ //SJIS対応
|
15
15
|
|
16
16
|
//SQLを実行
|
17
17
|
$sql = mb_convert_encoding($sql,CHARDB,CHAR2);
|
18
|
-
$rs = mysqli_query($sql);
|
18
|
+
__**$rs = mysqli_query($sql);
|
19
|
-
|
19
|
+
**
|
20
|
-
//データを返す
|
20
|
+
__ //データを返す
|
21
21
|
if($flag == 1){
|
22
22
|
//レコード数取得
|
23
23
|
$rwcnt = mysqli_num_rows($rs);
|
@@ -25,8 +25,8 @@
|
|
25
25
|
} else {
|
26
26
|
//レコードをリスト化
|
27
27
|
$ary = array();
|
28
|
-
while($row = mysqli_fetch_array($rs)){
|
28
|
+
__**while($row = mysqli_fetch_array($rs)){
|
29
|
-
array_push($ary,$row);
|
29
|
+
**__ array_push($ary,$row);
|
30
30
|
}
|
31
31
|
|
32
32
|
mb_convert_variables(CHAR2 , CHARDB , $ary);
|
2
記述訂正しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,7 +51,7 @@
|
|
51
51
|
$mysqlPsw = "******";
|
52
52
|
$mysqlDB = "******";
|
53
53
|
}elseif($_SERVER['SERVER_NAME']=="*****.ne.jp"){
|
54
|
-
$mysqlHst = "
|
54
|
+
$mysqlHst = "******.ne.jp";//UTF8 DB
|
55
55
|
$mysqlUsr = "******";
|
56
56
|
$mysqlPsw = "******";
|
57
57
|
$mysqlDB = "******";
|
1
コードをマークダウンの機能を利用しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
### 発生している問題・エラーメッセージ
|
9
9
|
エラーは出ていません。
|
10
10
|
### 該当のソースコード
|
11
|
+
```php
|
11
12
|
function get_sql_data($sql,$charset = "SJIS",$flag = 0){
|
12
13
|
//文字セットSQLを実行
|
13
14
|
mysqli_query(CHARDB."SET NAMES "); //SJIS対応
|
@@ -82,6 +83,8 @@
|
|
82
83
|
mysqli_free_result($result);
|
83
84
|
}
|
84
85
|
}
|
86
|
+
|
87
|
+
```
|
85
88
|
?>### 試したこと
|
86
89
|
上記*1のように結果を表示してみたところ画面にはDefault database is ******. Default database is ******. と表示しているのでデータベースにはアクセスできていると思っています。
|
87
90
|
実際には*1は不要なので削除しています。
|