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

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

解決済

3回答

3504閲覧

phpMyAdminが起動できません

Yuu412

総合スコア37

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グッド

0クリップ

投稿2020/05/04 07:16

編集2020/05/04 13:57

イメージ説明
Xamppの管理画面から「Admin」をクリックすると以下のような画面が表示されます。

イメージ説明

The mysqli extension is missing. Please check your PHP configuration. See [a@doc/html/faq.html#faqmysql@documentation]our documentation for more information.

エラーメッセージによるとextensionが無いようなので、C:\xampp\php\php.ini内の、extention=mysqliを確認しましたが、セミコロンは外れていました。
イメージ説明

以前にphpMyAdminを使用していたことはありますが、最近PHPのバージョンを7.4.5に変更しました。
関係あるかもしれないので記載しておきます。

足りない情報がございましたら、追加致しますのでよろしくお願いいたします。


phpinfoの内容
イメージ説明
イメージ説明
イメージ説明
イメージ説明

イメージ説明


新規追加情報

イメージ説明

まず、API Extensionの方を確認したところ、No Valueとなっていました。

次に、再び、php.ini内の、extension = myspqliの部分を、初期の状態で(最初の写真と同じ状態)apacheとMySQLの再起動、コンピュータの再起動を、次に、Yasumichiさんに教えていただいた方法でapacheとMySQLの再起動、コンピュータの再起動して確認しましたが、エラーメッセージは同じ表示のままでした。

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

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

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

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

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

guest

回答3

0

ひとまず、phpinfo()確認してみてください。

質問追記を受けての追記。

extensionは下記で十分なはず。

extension=mysqli

基本的にこれだけでphp_*.dllのファイルを見に行きます。
あまりやることはないですが、.dllのフルパス直指定でも問題はないはず。

ただ、きちんと読み込まれているなら、phpinfo()で下記のように出るはず。

イメージ説明

提示内容が全てならmysqliは有効になっていないと思われる。
念のため、mysqlndの「API Extensions 」も確認してみてください。
ページ内検索は「my」ではなく「mysqli」ですね。

php_mysqli.dllがext内にあるのでしたら、
指定の仕方を見直して再起動ですかね。次にやることは。

投稿2020/05/04 07:21

編集2020/05/04 11:45
m.ts10806

総合スコア80765

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

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

Yuu412

2020/05/04 07:49

phpinfoの内容を記載いたしました。よろしくお願いいたします。
aae_11

2020/05/04 09:52

>ひとまず、phpinfo()確認してみてください。 こちらは情報追記修正依頼に記載すべき内容です。
m.ts10806

2020/05/04 11:03 編集

aae_11さん いえ。それだけで解決することもあるので取り下げてくださいね。PHPも初心者でしょ?何を知ってるの? この程度で鬼の首でも取ったように低評価していては何の成長もしないわけです。 ご自身の未解決質問を正しく解決していくのが先です。
m.ts10806

2020/05/04 10:48

Yuu412さん ちなみに自身でPHP組んでmysqli使ったときはどうですか?
m.ts10806

2020/05/04 11:35

分かってないのは質問も何も読んでなく私への個人攻撃したいがために 頓珍漢なコメントをしている1人だけかと思いますが念のための解説。 ・環境問題は多岐渡るため1つのヒントで解決できる可能性は低い これを確認してダメなら次はこれ、と試行錯誤を繰り返していく必要がある ・質問者の質問内容から、ある程度自身で調べる力はあると判断できるので、 その質問者が確認していない項目の確認をしてもらうことで、ヒントとしてもらうようにした ・回答で「質問者が確認して無さそうな項目を確認してもらうこと」はアドバイスとして定石 低評価している人は上記何一つ理解してない証拠です。 自分が恥ずかしい思いするだけなので出てこない方が良いですよ。 質問者の問題解決の邪魔をしてしまうことになります。
Yuu412

2020/05/04 14:04

回答頂きありがとうございます。 質問追記を受けての追記の内容は、質問の下部に追加させて頂きました。 コメントで、PHP組んでmysqli使ったときという意味が分かりませんでした。 一応、PHPからmysqlに接続したときどうなるかという意味かと思いましたので、<?php $link = mysql_connect('localhost', 'user', 'pass');?>とコードを記入し、実行したところ、 Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\index.php:2 Stack trace: #0 {main} thrown in C:\xampp\htdocs\index.php on line 2 というエラーが出ていました。 無知な状態で申し訳ありませんが、よろしくお願い致します。
m.ts10806

2020/05/04 14:08

>PHPからmysqlに接続したときどうなるかという意味 はい、合ってます。 が、「mysql_connect」はPHP5.5で非推奨になり、PHP7に入り削除された機能です。 https://www.php.net/manual/ja/function.mysql-connect.php mysql_*系ですね。 今回は「mysqli」です。 phpMyAdminもあくまでPHPで作られたツールの1つに過ぎません。 その中でmysqli_*系の機能を使って作られているものと思われます(実装としてはあまり新しくはないけど、動かないわけではない) ですので、今回試してほしいのはmysqli_*系のほう。 https://www.php.net/manual/ja/function.mysqli-connect.php
m.ts10806

2020/05/04 14:09

いずれにしてもphpinfo()に私が提示したようなmysqliの項目が入ってなければ同じ結果になると思います。
Yasumichi

2020/05/04 14:24

質問者ではないですが。 私の環境では、scoop で別に php を入れていて、それが優先されていたためにおかしくなっていたようです。その php をアンインストールしたら、通常通りに読み込まれるようになりました。
m.ts10806

2020/05/04 14:27

Scoopを採用したことはないですが、複数バージョン入れるのならXAMPP複数入れて同時立ち上げしないようにするか、ポートを変更してわけたほうが良いと思います。 ※理想はそれ用の仮想環境をそれぞれ立ち上げること
Yasumichi

2020/05/04 14:33

+1 docker なり、Virtual Box なりで仮想環境も利用していますが、過去に xammp の質問を見て、xammp を入れてしまったという本末転倒なことで環境おかしくしてました(汗
m.ts10806

2020/05/04 14:36 編集

細かいですが、XAMPP ですね。 回答のために環境を揃えるというのは良い心がけと思います。勉強にもなります。(とはいえスペックは有限なので私は用が済んだら削除することもあります)
Yuu412

2020/05/04 14:42

別の質問での話なのですが、PowerShellでphpをインストールしているのにもかかわらず、phpコマンドが実行できないという現象があり、そのときも、別でphpが入っていたのが問題だったようですので、今回もそれが関係しているのでしょうか。 https://teratail.com/questions/258135 もしそうであれば、必要のない他のphpをうまく消す方法とかってありますでしょうか。
m.ts10806

2020/05/04 14:49 編集

関係ないとは言えません。 私としては下記が引っかかっています。 >以前にphpMyAdminを使用していたことはありますが、最近PHPのバージョンを7.4.5に変更しました。 「以前のphpMyAdminとはどうやって入れたか」 「PHP7.4.5はどうやって入れたか」 どちらもXAMPPであれば、引っかかる点はありそうです。 提示した質問内のコメントからインストーラ版ではなくZIP版で入れられていますしね。 インストーラ版で別のディレクトリ指定して入れなおしたら案外すんなりいくかもしれません。
Yasumichi

2020/05/04 14:55

そういえば、そこは私もひっかかておりました。 > 以前にphpMyAdminを使用していたことはありますが、最近PHPのバージョンを7.4.5に変更しました。 コマンドプロンプトで以下のように実行したらどうなりますかね? > Yuu412 さん where php
Yuu412

2020/05/04 14:58

C:\xampp\php\php.exeこのように表示されました。
m.ts10806

2020/05/04 15:00

私の方の推測としては、「前のPHPを見に行ってる」 または「前のphp.iniを変更している」かなと。 phpinfo()の結果が一部のみになっていますが確実に7.4.5になっているか、 対象のiniは当該7.4.5配下のものか を確認する必要があると思います。 XAMPPも新しいものに切り替えたのであれば、当然、phpMyAdminも新しいXAMPPのものになるはずですが、前の環境を見に行ってないか?とか。 XAMPPの完全アンインストールって、確か結構面倒だったはずです。 https://tabibitojin.com/xampp-how-to-uninstall/ 私は基本的に、インストール先はわけます(それこそxampp72,とかxampp73とかバージョン名称をつけます)し、可能ならポートもわけておきます。
Yasumichi

2020/05/04 15:04 編集

とりあえず、PATH は目的のものに通ってそうですね。 あとは、 https://teratail.com/questions/258135 であった、C:\WINDOWS\system32\php だけを削除したのがおかしい原因かもしれませんね。 該当のところに php_*.dll みたいなファイルが、他に転がってたりしませんかね? あったら、いきなり消すのではなく、別の場所に退避する方が良いかもしれません。
Yuu412

2020/05/04 15:01

m.ts10806さん、インストーラー版とはDevelopment packageのことでしょうか。 3つ選択肢がございまして、いずれが該当のものか分かりません。 https://windows.php.net/download#php-7.4
Yasumichi

2020/05/04 15:05

設定でアプリと機能とか、プログラムと機能とかに php ぽいものありませんか? そちらをアンインストールされた方が良いかも。
m.ts10806

2020/05/04 15:05

インストール先ディレクトリも分けた方が良いです。 元のディレクトリ使いまわしはトラブルのもとです。それだけコンピュータって融通効かないものなので
Yasumichi

2020/05/04 15:31 編集

多分、XAMPP の PHP と互換性のない dll が優先的に読まれて、ロードエラーなっている気がします。 インストール先を分けただけだと、その辺で苦労しそうな気がしまね。 それぞれ、異なる PATH を与えるようなスクリプトなりを組めないと。Windows でも chroot 環境みたいなのを軽易に組めると良いんでけど。(サンドボックス環境みたいな)
m.ts10806

2020/05/04 21:09

やはり、別のディレクトリにXAMPP入れ直して確認したほうが良さそうですね。
Yuu412

2020/05/05 00:54

Yasumichiさん、m.ts10806さん 本当に丁寧にありがとうございました。 おかげさまで、phpMyAdsminを起動することができました!
guest

0

自己解決

正直なところ、理由が私には理解できかねますので、詳しい原因については、回答者様のコメントを参考にしてください。

まず、私のxamppは1年程前にphpの勉強をしていたときにインスト―ルしたものであり、今回phpだけバージョンアップしていた状態でした。

phpMyAdminは以前のphpと繋がろうとしているのに、現在使っているのは最新のphpという状況だったので、問題が発生してしまったのだと思います。

解決方法は、xamppをphpごとアンインストールし、再インストール後、pathを通してpcを再起動しました。

投稿2020/05/05 01:02

Yuu412

総合スコア37

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

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

m.ts10806

2020/05/05 01:16

>xamppをphpごとアンインストールし、再インストール後、pathを通してpcを再起動しました。 なので、パスもわざわざ通さなくて良いインストーラ版で別ディレクトリで・・・とアドバイスし続てきたのですけど、 あえて難しい道にチャレンジしたいとのことで理解しました。
Yasumichi

2020/05/05 01:17

それは多分、XAMPP の中の PHP だけをバージョンアップしてしまったので Apache 用のモジュールと相性が悪かったのだと思います。この辺は、Apache や PHP をソースからビルドした経験がないとピンとこないかもしれません。
guest

0

★じ後、修正したこと。★

私の環境では、scoop で別の php をインストールしていたため、おかしくなっていました。

その後、scoop で php をアンインストールして、php.ini も以下のように元に戻しました。

ini

1extension=mysqli

再起動後、phpinfo を表示したら、以下のように問題なく mysqli が読み込まれていました。

イメージ説明

phpmyadmin は起動していたものの mbstring のエラーが出ていたのでもしやと思って試してみました。

【以下、元の記事】

私も試したら同じ現象でした。私の場合、C:\ 直下にインストールしていますが、php.ini にて

ini

1extension=C:\xampp\php\ext\php_mysqli.dll

のようにフルパスで dll を書いて、Apache を再起動し、ページの再更新を書けたら、動作しました。

【追記】
xampp は以下のを展開したものです。
xampp-portable-windows-x64-7.4.5-0-VC15.7z

投稿2020/05/04 07:52

編集2020/05/04 14:22
Yasumichi

総合スコア1773

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

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

Yuu412

2020/05/04 09:16

教えていただいたとおりに(画像添付)してみましたが、結果は変わりませんでした。
Yasumichi

2020/05/04 09:26

インストール場所は私と同じなのですか?
Yuu412

2020/05/04 10:00

はい、同じです。
Yasumichi

2020/05/04 10:02

phpinfo() の結果も変わらないですか? あと、C:\xampp\php\ext\php_mysqli.dll は存在を確認できますか?
Yuu412

2020/05/04 10:19

phpinfo()確認致しましたが、上記の画像と全く同じでした。 (mysql周り) C:\xampp\php\ext内に、php_mysqli.dllがございます。
Yasumichi

2020/05/04 10:33

私の場合、キャッシュでエラー画面が出てきて、更新すると phpmyadmin が表示されました。 ブラウザーを再起動すると直接、接続できました。参考になるか分かりませんが。
Yuu412

2020/05/04 13:25

ただいま、キャッシュの削除兼ブラウザの再起動をしてみましたが、やはりだめなようです。。。
Yasumichi

2020/05/04 14:25

xammp の他に php 入れてたりしませんか?私の環境では、scoop というパッケージマネージャーで別の php を入れていたためにおかしくなっていました。
Yuu412

2020/05/04 14:56

記憶では入れていないつもりなのですが、現状を見る感じYasumichiさんの言うようにはいっているかもしれません。 確認する方法などございますでしょうか。
Yuu412

2020/05/04 14:57

m.ts10806さんの質問の方で引き続きよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問