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

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

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

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

mysqli

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

PHP

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

Q&A

解決済

2回答

290閲覧

PHPとSQLの接続ができない

hajimetenoPHP

総合スコア1

MySQL

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

mysqli

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

PHP

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

0グッド

0クリップ

投稿2024/12/02 05:39

編集2024/12/02 05:58

実現したいこと

初心者、初学者です。プログラミングの学習を行うためにPHP・SQLの環境構築を行っていますが、PHPとSQLの接続ができずに困っています。
PCはノートPCでwindows11、64bitです。
Apache24、PHP8.3、SQL9.1をインストールし、PHPInfoは表示でき、Apacheも起動できる状態です。
しかし、SQLServerに接続しようとすると、うまく接続できずに困っています。
現在、インターネットを活用してトライ&エラーでここまできたのですが、限界を感じて質問させて頂きました。
就労移行支援に通っており、本来は支援先で環境が整っているはずだったのに、蓋をあけたら動作確認はwindows7やVitaでとまっており、まったく学習ができずに困っています。
PHPinfoを表示するまでも1か月かかりました。
助けていただけないでしょうか。
以下のコードにて実行すると、ドライバーがない。と表示されます。
なんのドライバーが足りないのかもわからず。
ご教示よろしくお願いいたします。

発生している問題・分からないこと

ドライバーがない、と表示されるが、なんのドライバーがないのかわからない。

エラーメッセージ

error

1could not find driver

該当のソースコード

<?php $dsn = 'mysql:dbname=lesson;host=localhost;charset=utf8;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock'; $user = 'root'; $pass = 'aps1234'; try{ $db = new PDO($dsn, $user, $pass); echo '接続成功!'; }catch(PDOException $e){ echo $e->getMessage(); } ?>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
<?php // 接続情報 $hostname = 'localhost'; //DBホスト $username = 'root'; //DB接続ユーザー $password = 'aps1234'; //DB接続パスワード $database = 'lesson'; //DB名 try{ // DBへ接続 $link = mysqli_connect($hostname , $username, $password, $database); // 接続OK if($link){ echo("DB OK."); // 接続NG }else{ echo("変数なし."); } //接続NG }catch (Exception $e){ echo($e); } ?>
上記の詳細・結果

Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in C:\Apache24\htdocs\index2.php:10 Stack trace: #0 {main} thrown in C:\Apache24\htdocs\index2.php on line 10

補足

特になし

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

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

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

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

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

hiroki-o

2024/12/02 14:02

- MySQLなのかSQL Serverなのか。両者は別物です。 - $dsnに書いてありますが、MAMPを使用しているのですか?
guest

回答2

0

各サーバーアプリのバージョンは指定なのでしょうか?
なにもわからないなら多少バージョンはふるくなリマスがXAMPPあたりで環境を構築するのが妥当だと思います

投稿2024/12/02 06:02

yambejp

総合スコア116921

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

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

hajimetenoPHP

2024/12/02 06:10

ご返信ありがとうございます。 バージョンは指定ではありません。どれがよいのかわからず入れています。 恥ずかしながら、一番最初にXAMPPでもうまく環境構築できず、今なんとかここまでたどり着いた状況です。 XAMPPについては今ならもしかしたら構築できるかもしれないので、もう一度挑戦してみようと思います。
yambejp

2024/12/02 06:13

正直初心者が手をだすならXAMPPがベストチョイスだと思いますよ
hajimetenoPHP

2024/12/02 06:20

ありがとうございます!! 完全初心者なので、本当に右も左もわからず・・・。 またXAMPPで困ったときはご質問をさせて頂けると助かります。 宜しくお願い致します。
guest

0

ベストアンサー

sqlにも種類がいくつかあって、PDOというPHPのクラスはドライバーと呼ばれるものを判別してSQLの接続に行きます。

おそらく質問者さんの環境はMySQLの接続をしたいのでMySqlのドライバーが必要になります。デフォルトではSQLiteというSQLのドライバーになっているかと思います。

コマンドライン等の環境から

dnf install php-mysqlnd

のようなコマンドを実行する必要があります。
https://qiita.com/taconana/items/6674798af3a9709f3391

windows11の場合、どのようにインストールするのか分かりませんが、一般的にはxamppを入れて動作確認するかと思います。

投稿2024/12/02 05:55

utm.

総合スコア380

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

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

hajimetenoPHP

2024/12/02 06:14

回答ありがとうございます!試してみましたが解決できませんでした…。 キャッシュの削除やApacheの再起動を行いましたがcould not find driverがでてきます。 なにか違うやり方をしている可能性がありそうですね。 XAMPPで試す場合は、一度今インストールしているApacheやSQLServerはアンインストールした方がよいのでしょうか。 初歩的な質問で、内容も変わって申しわけないです。 本当に困り果てていて、ご教示いただけますと幸いです。
utm.

2024/12/02 07:27

そのエラーはPHPそのものが出しているので、PHPの依存関係を解決する必要があり、ApatchやSQLServerは関係ないです。 (SQLServerを使っているのであれば、MySQLではなく、SQLSever用のものが必要かと思います) 依存関係というのはPHPというプログラミング言語のモジュールを環境ごとに必要不必要を切り分けることが出来る考え方であって、APIのようなものです。今回はSQLのドライバーがそれに該当します。 ちなみに、CGI版とか、モジュール版とかそういうのが原因ならApatchが関係すると思いますが、おそらく単にPHPの実行に必要なモジュールがインストールできていないだけだと思います。 XAMPPで試す場合はApatchなどの起動を1度停止しておくぐらいでいいかと思います。アンインストールは必要ないかと思いますが、絶対にこうだとは言えるほど自信はないです。
utm.

2024/12/02 07:28

New PDOのやり方がオススメです。
utm.

2024/12/02 07:29

ちなみにドライバーがインストールされているか?の確認はPHPinfoで確認できるのでは?と思います。 もしかしたら、iniファイルの設定を変更しないと行けないかもしれないですが、自分の記憶では必要なかった気がします。
utm.

2024/12/02 07:33

Xamppを入れる場合、ディレクトリなどの考えが難しいと感じるかもしれません。 単にApatchを入れてドキュメントルートを設定するのと、 Xamppで動作確認するのとどちらが簡単かは人によって好みが別れるかもしれません。 初心者がトラブルシューティングするなら、XAMPPの方がいいのでは?と個人的に思います。 Apatchを入れてコマンドラインから操作するのは1度手順が分かれば良いですが、そうでないならトラブルシューティングが煩雑になるかと思います。 それで萎えないなら、そっちの方法でもいいかもしれませんが。
hajimetenoPHP

2024/12/03 05:54

回答ありがとうございます。 モジュールがインストールされていない、ということをヒントにもう一度PHPの入れ直しなどを行ったところ、無事に「接続成功!」と表示できました。 ベストアンサーに選ばせていただきました。 初心者に丁寧に教えてくださりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.34%

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

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

質問する

関連した質問