質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2074閲覧

PHPバージョンアップのエラー Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in

hahahamoto

総合スコア1

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2021/08/17 04:28

前提・実現したいこと

PHP、Mysqlを使用し、データを共有するシステムを運用していて、PHPを5.3系から7.3系に移行しました。今までのコードはほとんどそのままでMysqliに書き換えて対応したいのですが、エラーが発生しました。

発生している問題・エラーメッセージ

Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in ファイル名 データベースを取得できていないようなのですが、どこをどう直したらいいかわかりません。

該当のソースコード

【dbconnect.php】 <?php ini_set("display_errors", "On"); // MySQLへ接続する $mysqli = new mysqli("localhost","username","password","dbname"); if ($mysqli->connect_error) { echo $mysqli->connect_error; exit(); } else { $mysqli->set_charset("utf8"); } ?> 【index.php】 <?php require_once 'login.php'; ?> <?php require_once 'dbconnect.php'; ?> <?php require_once 'function.php';?> <?php require_once 'header.php';?> <?php session_cache_limiter('private, must-revalidate');?> <h1 class="posttitle">得意先一覧</h1> <!-- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ --> <?php $recordSet=$mysqli->query(" select *, max(showroom_db.data_time) as xtime,showroom_customer.c_key from showroom_customer left join showroom_db on showroom_customer.c_key = showroom_db.c_key group by showroom_customer.c_key order by showroom_customer.customer "); ?> <table class="tb_customer3 tb_stripe"> <?php //配列で取り出す while($data=$recordSet->fetch_assoc())://今回のエラーの場所 ?> <?php //現在日付 $time1 = date("Y-m-d H:i:s", time() ); //判定する日時 $time2 = $data['xtime']; //想定した日付 $time3 = strtotime("$time2 +31 day"); //現在日時より想定した日が大きくなる時 if ($time3 < strtotime($time1)) { $whatsold='<img src="img/bakudan.png">'; } else { $whatsold=''; } ?> <tr> <td><a href="product.php?c_key=<?php echo $data['c_key'];?>"><?php echo $data['customer'];?></a></td> <td width="30%">最終更新日:<span class="time"><?php echo $data['xtime'];?></span></td> <td width="5%"><a href="c_delete.php?c_key=<?php echo $data['c_key'];?>"><img src="img/sakujyo.png" alt="得意先削除" class="rover"></a></td> <td width="5%"><?php echo $whatsold; ?></td> </tr> <?php endwhile;?>

試したこと

php7ではmysql関数が対応していないようなのでこちらを参考に書き直しました。
https://qiita.com/kentyama/items/f7759807445c3863ccaa

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

PHP

1$rows = $recordSet->fetch_all(MYSQLI_ASSOC); 2var_dump($rows);

で確認してみてください
大丈夫そうなら

PHP

1foreach($rows as $data){ 2・・・

みたいな感じで

投稿2021/08/17 04:48

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hahahamoto

2021/08/17 05:31

回答頂きありがとうございます! $rows = $recordSet->fetch_all(MYSQLI_ASSOC); var_dump($rows); の文を追記したのですが、 Fatal error: Uncaught Error: Call to a member function fetch_all() on bool in ファイル名 とエラーが出ました。 試しに var_dump($recordSet); の文を記載し、結果はbool(false) となっていました。 また、【dbconnect.php】のelseの部分で echo "文字列"; を実行できたので、データベースに接続は出来ているのではないかと思うのですが、 どこに問題があるでしょうか? どうかよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問