🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

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

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

6回答

5914閲覧

mysqliを使ったデータベース接続でエラー

3AnL49MTU6OiOj3

総合スコア20

MySQL

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

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2019/10/29 17:21

編集2019/10/30 05:45

前提・実現したいこと

現在ECサイトを作成しています。
addform.html
index.php
ここまでは作成したのですが、
index.phpの41,43,50行目にてエラーが出てしまいます。
これはMySQLに接続出来ていないと意味するエラーなのでしょうか?
回答お待ちしています。

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

Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in C:\xampp\htdocs\index.php on line 41 Warning: mysqli::prepare(): Couldn't fetch mysqli in C:\xampp\htdocs\index.php on line 43 Fatal error: Uncaught Error: Call to a member function bind_result() on null in C:\xampp\htdocs\index.php:50 Stack trace: #0 {main} thrown in C:\xampp\htdocs\index.php on line 50

該当のソースコード

PHP

1 2<!DOCTYPE html> 3<html> 4<head> 5<meta charset="utf-8"/> 6<title>閲覧ページ</title> 7<style> 8table{ 9 border-collapse:collapse; 10} 11th,td{ 12 boder:solid 1px #000; 13} 14</style> 15</head> 16<body> 17<div> 18<table> 19<thead> 20<tr> 21<th>日付</th> 22<th>最高</th> 23<th>最低</th> 24<th>脈拍</th> 25<tr> 26</thead> 27<tbody> 28<!--ここをphpで出力する--> 29<tr> 30<td>xxxx-xx-xx xx:xx:xx</td> 31</tr> 32</tbody> 33</table> 34</div> 35<div> 36<a href="addform.html">追加フォ―ム</a> 37</div> 38</body> 39</html> 40<?php 41//データベースへ接続 42$db=new mysqli('localhost','root','','health'); 43//SQL文を登録 44$state=$db->prepare('SELECT timing,high,low,pulse FROM blood_pressures;'); 45//以下の変数にDBの値を取得する 46$timing=''; 47$high=0; 48$low=0; 49$pulse=0; 50//引数で指定した変数に幅が設定されるように登録する 51$state->bind_result($timing,$high,$low,$pulse); 52//登録したSQL文を実行 53$state->execute(); 54?> 55<!DOCTYPE html> 56<html> 57<head> 58 <meta charset="utf-8" /> 59 <title>閲覧ページ</title> 60 <style> 61 table{ 62 border-collapse: collapse; 63 } 64 th,td{ 65 border: solid 1px #000; 66 } 67 </style> 68 </head> 69 <body> 70 <div> 71 <table> 72 <thead> 73 <tr> 74 <th>日付</th> 75 <th>最高</th> 76 <th>最低</th> 77 <th>脈拍</th> 78 </tr> 79 </thead> 80 <tbody> 81<!--行を順番に取得する --> 82<?php while($state->fetch()) : ?> 83 <tr> 84 <td><?= $timning ?></td> 85 <td><?= $high ?></td> 86 <td><?= $low ?></td> 87 <td><?= $pulse ?></td> 88 </tr> 89<?php endwhile; ?> 90</tbody> 91</table> 92</div> 93<div> 94 <a href="addform.html">追加フォ―ム</a> 95</div> 96</body> 97</html> 98<?php 99//DBへの接続を切断 100$state->close(); 101$db->close(); 102?> 103 104

試したこと

スペルミスのチェック
MySQLの起動

補足情報(FW/ツールのバージョンなど)

試したこと

スペルミスのチェック
MySQLの起動

###環境OS WINDOWS10
開発環境xampp
開発ツールATOM 補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/10/30 01:02

内容からして、まだまだECサイトの欠片も見えない状況なので、質問タイトルが不適切。例えば、mysqliを使ったデータベース接続でエラー、くらいにしておくとよいのではないかと。
guest

回答6

0

これはMySQLに接続出来ていないと意味するエラーなのでしょうか?

このサイトにネット検索などを駆使してたどり着いたように、
エラーメッセージを部分的に切り出してネット検索することで、
解決策を説明するページに辿り着くこともできます。

このようなエラー内容でteratailに頼るなとは言いにくいですが、
納期が差し迫っている状況でも同じようなことをしていたら
納品できませんでしたって話にもなりますので、
プログラミング技術よりも先に、
自力で解決する方法を磨いていただきたいと願います。

たとえば、「Access denied for user 'root'@'localhost'」を切り出して
Google検索にかけるとこんな結果になります:
イメージ説明

でも、それだけではあまりに様々な情報が含まれているため、
実行環境であるXAMPPとかWindowsも補うとこんな結果になります:
イメージ説明

そうやって、自力解決にたどり着けるようお祈り申し上げます。

投稿2019/10/30 00:58

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

3AnL49MTU6OiOj3

2019/10/30 05:40

ご回答ありがとうございます。 こんなエラーと申されますが、当方にとっては初めてのエラーです。 質問内容を賢慮していたら、teratailの存在意義が問われると思います。 質問者を見下すような発言をされるのであれば、 金輪際私に回答しないでください。 プログラミング上級者と高度な話をされてたいいんじゃないですか?
退会済みユーザー

退会済みユーザー

2019/10/30 05:43

@3AnL49MTU6OiOj3さん > こんなエラーと申されますが、当方にとっては初めてのエラーです。 確かにそうでしょうけど、「Access denied for user 'root'@'localhost'」これ読んでみればそう書いてあるとしかいえないですよ。 となると、あなたはエラーも読まずに質問しているとしか思えないですよ。
退会済みユーザー

退会済みユーザー

2019/10/30 05:49

このteratailにおいて [Access denied for user 'root'@'localhost'] の検索結果: 175件 とでて多くは解決済に至っているため、あまりにありふれた、よくあるエラーなのです。 質問者さんだけが遭遇する稀有なエラーではないのです。 そのため、十分自己解決に到れる内容だと判断いたしました。 ちょっとネット検索すれば手がかりがあるのに、それをせず、 teratailの回答者を巻き込むのはいかがなものでしょう。 自分で調べて、自分で解決する努力をどのくらいしているか、聞かせてください。 「スペルミスのチェック」「MySQLの起動」くらいじゃ解決する話じゃないから、 エラーメッセージで検索してください、と申し上げております。
Y.H.

2019/10/30 06:36

質問者んへ 答えは検索すればすぐに見つかるのに・・・質問から既に11時間も過ぎていますよ。 ヘルプを一読されてみることをお勧めします。 「質問するときのヒント」 https://teratail.com/help/question-tips#questionTips1-2 > 1. 質問をする前に心がけてほしいこと > 1-1. teratailはサポートセンターではなく、思考するエンジニアの為のQ&Aコミュニティです > 1-2. 投稿前に検索し、できるところまで自分でやってみましょう また、質問するときの画面で「質問ポリシー」に同意されたはずなのですが。 > 質問する前に、わからないことを調べましょう >  わからないことがあれば、まずは調べてその結果を試してみましょう。 >  それでもわからなければ「自分で試したこと」として記載した上で質問しましょう。
m.ts10806

2019/10/30 09:41 編集

質問者さんへ 「質問文を作る時間が勿体ないと思ってほしい」というのがここに回答している回答者の総意です。 世界で初めてあなたが遭遇する問題ってないわけです。 「誰かが同じ問題にあたったはず」というのを必ず念頭においてください。 プログラミングをやっていくうえでは必須の考え方です。 過去質問はその「誰か」を見つける有効な手段です。 質問文考えてる間に検索もできて吟味も出来て幾つかの方法を試すことが出来ます。 私が回答に提示した記事は読みましたか? その記事を読んでこの質問についた回答を読むと思うところはありませんか?
guest

0

うーん、「接続出来ていないと意味するエラーなのでしょうか?」と人に問う前に、辞書とか見た方が良いと思います。

「Access denied for user 'root'@'localhost'」
は、アクセスが「拒否された」、'root'@'localhost'ユーザに対する、くらいまでは分かると思います。

接続出来る、出来ていないよりも、深い情報が含まれています。
(1)「接続に行ったけど」(2)「拒否された」
です。

後に続く処理がMySQLサーバに接続した後の処理なので、当然エラーになります。
(というよりも、プログラミングの本道としては、接続できなかった場合には処理させないように記述しないとダメです)

とにかく、MySQLサーバに接続できるように修正することを、お勧めします。

投稿2019/10/30 00:09

編集2019/10/30 00:11
takepan1973

総合スコア821

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

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

0

これはMySQLに接続出来ていないと意味するエラーなのでしょうか?

はい。
エラーメッセージの読み方と対処, 検索や質問の原則

投稿2019/10/29 21:15

m.ts10806

総合スコア80875

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

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

0

ベストアンサー

(HY000/1045): Access denied for user 'root'@'localhost' (using password: NO)

とは、

$db=new mysqli('localhost','root','','health');

と書かれている接続情報で、(PHP)が接続しようとしたMySQLに接続を拒否されたということです。

じゃあ、ここで何をすれば良いか・・・

ソースを見直すことじゃありません。

MySQL に接続する情報として、

host = localhost user=root password='' database=health

と指定しているのですから、この情報があっているのかを確認することです。

投稿2019/10/30 06:12

編集2019/10/30 06:13
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

3AnL49MTU6OiOj3

2019/10/30 08:12

ご回答ありがとうございます。 試してみます!!
退会済みユーザー

退会済みユーザー

2019/10/30 08:17

確認方法は聞かないでくださいね。 それこそGGRKSですから。
guest

0

これはMySQLに接続出来ていないと意味するエラーなのでしょうか?

エラーメッセージはよく読みましょう。
MySQLに'root' @ 'localhost'でパスワードなしで接続しようとしてアクセスが拒否されたよ。ソースファイルの該当箇所はC:\xampp\htdocs\index.phpで41行目だよ。
というエラーメッセージです。

google翻訳

警告:mysqli :: __ construct():(HY000 / 1045):41行目のC:\ xampp \ htdocs \ index.phpでユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワード:NOを使用)

投稿2019/10/30 00:33

Y.H.

総合スコア7918

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

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

3AnL49MTU6OiOj3

2019/10/30 05:44

ご回答ありがとうございます。 と申しますと、41行目にパスワード記入が必要とのことでしょうか?
Y.H.

2019/10/30 05:53

ここで聞くよりやってみたほうが早く問題解決できると思うんですが。。。 パスワードが必要かどうかは 質問者さんの使用されているMySQLの'root'@'localhost'ユーザーにパスワードが設定されているかどうかによるので私にはわかりません。
guest

0

日本語コードの指定を試してみましょう。

$db=new mysqli('localhost','root','','health'); ```の下に ```ここに言語を入力 $db->query("set names utf8");

を記述し、コードをUTF-8で保存して動かしてみてはどうでしょうか。

投稿2019/10/30 08:44

seastar3

総合スコア2287

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

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

m.ts10806

2019/10/30 09:42

そもそもset namesは悪手ではないでしょうか・・・(今回の問題とは関係ないですし)
seastar3

2019/10/30 10:17

まったく浅はかな回答をして申し訳ありません。 過去にこの対応で動いたので、よい方法と思い込んでいましたが、各オブジェクト流のメソッドを選ばなければならないのですね。勉強になりました。 ただ、ソースコードをshift-JISからUTF-8にしたら、同様のエラーメッセージが取れたことはあります。上部のJHTML上の日本語コードが誤動作を起こしている可能性はあろうかと思います。
退会済みユーザー

退会済みユーザー

2019/10/30 10:52

どんまい
3AnL49MTU6OiOj3

2019/10/30 13:28

他の方回答ありがとうございます。 m6u→それは何を意味する発言でしょうか? いちいち揚げ足取るなんて、どれだけこの方はお暇なのでしょうか? もう回答は貴殿からの回答はこれで終わりにしてください。 一応通報しておきましたので発言にはお気をつけを。
m.ts10806

2019/10/30 14:06 編集

3AnL49MTU6OiOj3さん 大きく勘違いされてるようです。 m6uさんのコメントはseastar3さんに対するコメントですし、 「どんまい」が揚げ足取りになるなんて誰も思ってませんよ。 (まさか意味を知らないとは思いたくないですが) むしろ私やKosuke_Shibuyaさんの指摘の方が「揚げ足取り」でしょう。 低評価数とコメントした回答者数が合わないので、「無言低評価をした人」に対しては何も感じませんか?(私は明らかなもの以外への回答への無言低評価は失礼と思っていますが) しかしこの程度で通報されるのも困ったものですね。 「他の有用なアドバイスを全てスルーしてm6uさんへの攻撃に終始しようとしている」として通報してもよろしいですか? むしろ、ガイドラインにそむいて丸投げ質問をしている(調べたかどうか何も書いていない)方が避難されて然るべきですね。回答がつかなくなったら困るのは誰でしょうか。ご注意を。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問