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

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

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

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

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

XAMPP

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

Q&A

1回答

1319閲覧

phpでデータベースを表示したいがエラーが出てしまう

退会済みユーザー

退会済みユーザー

総合スコア0

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

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

XAMPP

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

0グッド

1クリップ

投稿2019/11/03 05:28

編集2021/01/07 04:44

参考書でphpを勉強中です。XAMPP v3.2.4、Notepad++,windows10を使っています。

ブラウザで「コード//localhost/これから始める人のPHP学習帖\Chapter4\coffee_break_A\4.php」
を実行すると以下のエラーが出て先に行けません。

ユーザーの取得に失敗しました!

rootでログインして現在のデータベースを表示すると以下になっています。

    information_schema
mydb
mysql
performance_schema
phpmyadmin
test
testdb

追加したユーザー名でログインして、データベースを表示したいのですが。

期待される表示内容は以下です。
information_schema
test
testdb

// c:\XAMPP\mysql\data\mysql_error.log

2021-01-05 11:47:14 426 [Warning] Aborted connection 426 to db: 'unconnected' user: 'MyName' host: 'localhost' (init_connect command failed)
2021-01-05 11:47:14 426 [Warning] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''SET NAMES utf8'' at line 1
2021-01-05 11:48:05 428 [Warning] Aborted connection 428 to db: 'unconnected' user: 'MyName' host: 'localhost' (init_connect command failed)
2021-01-05 11:48:05 428 [Warning] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''SET NAMES utf8'' at line 1

となっています。書き方に問題あるようなのですが、わからないので
これを解決する方法を教えていただきたいです。

php

1 2//localhost/これから始める人のPHP学習帖\Chapter4\coffee_break_A\4.php 3<html> 4<head> 5<meta charset="utf-8"> 6</head> 7<body> 8<?php 9 10 $usr = 'root'; // ユーザー名 11 $pwd = 'SQL6naxxx'; // パスワード(USBWebserverの場合) 12 $host = 'localhost'; // データベース・ホスト名 13 14 $dbName = 'testdb'; // 利用するデータベース名 15 16 $User = 'MyName'; // 追加したいユーザー名 17 $Pass = 'MyPass'; // そのパスワード 18 19 $sql = "GRANT ALL PRIVILEGES ON {$dbName}.* TO {$User}@"; 20 21 $sql .= "{$host} IDENTIFIED BY '{$Pass}' WITH GRANT OPTION;"; 22 23 $link = mysqli_connect($host, $usr, $pwd); // サーバーに接続 24 25 if( mysqli_select_db($link, $dbName)){ // データベースを選択 26 27 mysqli_set_charset($link, 'utf8'); // 文字コードの設定 28 29 mysqli_query($link, $sql); // SQL文を実行 30 31 } else { 32 exit('ユーザーの追加に失敗しました!'); 33 } 34 35 mysqli_close($link); // 接続を切断 36 37 38 // 追加したユーザーで接続し、データベース一覧を表示させて確認 39 $usr = $User; 40 41 $pwd = $Pass; 42 43 $link = @mysqli_connect($host, $usr, $pwd); // サーバーに接続 44 45 if( mysqli_select_db($link, $dbName)){ // データベースを選択 46 47 mysqli_set_charset($link, 'utf8'); // 文字コードの設定 48 49 mysqli_query($link, $sql); // SQL文を実行 50 51 } else { 52 exit('ユーザーの取得に失敗しました!'); 53 } 54 55 // データベース一覧を表示させて確認 56 $sql = 'SHOW DATABASES;'; 57 58 if($result = mysqli_query($link, $sql)){ // SQL文を実行し、結果を取得 59 60 while($row = mysqli_fetch_assoc($result)){ // データを取り出す 61 62 echo $row['Database'] . '<br>'; // キーがDatabaseのデータです! 63 64 } 65 mysqli_free_result($result); // 結果をクリア 66 } 67 mysqli_close($link); // 接続を切断 68 69 70 71 72 /* 実行結果 73 http://localhost/C:\xampp\htdocs\これからはじめる人のPHP学習帖 74 \Chapter4\coffee_breakA/4.php で以下が表示される。 75 76 ユーザーの取得に失敗しました! 77 */ 78 79 80?> 81</body> 82</html>

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

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

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

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

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

guest

回答1

0

$cfg['Servers'][$i]['controluser'] = 'pma';

となっているんですが、
すべての'pma'を'MyName'; // 追加したいユーザー名を変更するんでしょうか。

config.inc.phpはPHPMyAdminの設定ファイルなので関係ありません。

「Error executing query」はクエリ実行エラーですね。

$link = @mysqli_connect($host, $usr, $pwd); // サーバーに接続

ここでエラーを無視するように書かれていますが、無視してはいけないと思います。
本当に接続成功できてるんでしょうか?
$linkに何がおさめられているか確認してみてください。

最も良いのは接続部分をtry-catchで囲ってmysqli_sql_exception を捕捉するようにすることです。

ただ、mysqliよりPDOを使った方が後々考えるとやりやすくなると思います。
teratail:PDOとmysqliはどっちを使うべき?

投稿2019/11/23 20:50

m.ts10806

総合スコア80765

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

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

退会済みユーザー

退会済みユーザー

2019/11/27 07:42

まだ勉強始めたばかりでよくわからないので、後から質問しなおします。 ありがとうございます。
退会済みユーザー

退会済みユーザー

2019/11/27 07:44

まだPHPの勉強を始めたばかりでよくわかりません、後で再度質問させていただきます。ありがとうございます。
m.ts10806

2019/11/27 07:47

「解決済み」とするのでしたらこの締め方は誰の参考にもならないのでよくないと思います。
退会済みユーザー

退会済みユーザー

2019/11/27 07:49

どうしたらいいでしょうか
退会済みユーザー

退会済みユーザー

2019/11/27 07:50

一応質問で残しておきます。
退会済みユーザー

退会済みユーザー

2019/11/27 07:52

たびたびすみません。「解決済み」をキャンセルするにはどうしたらいいのでしょうか。 よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2019/11/27 07:53

できました。
m.ts10806

2019/11/27 08:06

質問したからには解決するまで対応するのが質問者の唯一の責任となりますので覚えておいてください。 あと今すぐでなくて良いので、この質問をきちんと解決するためにはどうしたら良いか考えて質問本文に反映しておいてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問