php、sqlについて質問します。

補足

エラー内容と修正箇所を載せときます。。 エラー内容 Trying to access array offset on value of type bool 修正箇所 (php) $link = @mysqli_connect('localhost','root','','テーブル名'); mysqli_set_charset($link,'utf8'); $sql = sql($link,$_POST['text']); $query = mysqli_query($link,"'".$sql."'"); $tbl = []; while($row = mysqli_fetch_assoc($result)){ $tbl[] = $row; } //エラーはここ! $table = $tbl; mysqli_close($link); $tblの中身はfalseが返ってきているので上記のエラーが発生しているのかと思います。

PHP | MySQL66閲覧

ベストアンサー

0

あと・・・ >$link = @mysqli_connect('localhost','root','','テーブル名'); 何故 @ を使ってエラー抑制しているのでしょうか?接続が行えなかったときでも、以降の処理を行ってそこでエラーになりますので根本の原因(接続に失敗したこと)がわからなくなります。 どうしても表示を抑制したければ $link = @mysqli_connect('localhost','root','','データベース名') or die('connect error'); のようにしてください。

ThanksImg質問者からのお礼コメント

ご丁寧にありがとうございました!!聞きたいことが聞けました!

お礼日時:2021/12/6 19:52

その他の回答(1件)

0

まず、エラーが表示されているのであれば、そのエラーを読んで質問内容に含めるか、エラーもコピペして質問した方がよいです。 どういったエラーかわからないのですが、おそらく、下記の部分が正しい SQL 文になっていないことが原因です。 $sql = sql($link,$_POST['text']); $query = mysqli_query($link,"'".$sql."'"); 下記のページが参考になると思います。 https://www.javadrive.jp/php/mysql/index7.html

回答ありがとうございます。 すいません。エラー内容を貼るのを忘れていました。一番最初に出てきたのが、Trying to access array offset on value of type boolが出てきて、空配列を使用しようとしてエラーが出てきています。そのため、$queryでfalseが返されているのが原因です。わかりやすく捕捉で説明します。。