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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

XAMPP

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

Q&A

2回答

14547閲覧

could not find driverから抜け出せない...

yuriii

総合スコア4

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

XAMPP

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

0グッド

0クリップ

投稿2019/10/24 07:20

編集2022/01/12 10:55

環境

・Windows10
・XAMPP 3.2.4
・PHP7.3.10

前提・実現したいこと

SmartyとPDOを利用して、データベースの中身をhtml表示したい。

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

このメッセージがどうしても出てしまいます。

Error:could not find driver

該当のソースコード

<?php //テンプレート利用準備 require_once 'smarty/Smarty.class.php'; $smarty = new Smarty(); $smarty->template_dir = 'templates/'; $smarty->compile_dir = 'templates_c/'; try { //データベース接続 $pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', ''); $pdo->setAttribute(PDO::ALTER_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //データ検索 $stmt = $pdo->query('SELECT * FROM fruits ORDER BY id DESC'); } catch (PDOException $e) { exit('データベース接続失敗'.$e->getMessage()); } //データベース接続終了 $pdo = null; //結果表示 $smarty->display('index.html'); ?>

試したこと

①php.ini のあるディレクトリのPathを通す。

②phpinfo()で確認すると、PDOの欄には、no valueと出ています。
➡ここにmysqlが表示できればいいのですよね...?それが出来ず困っています。

③php.iniの中身を変更。
・extension_dirのディレクトリを、php_pdo_mysql.dllのある場所に変更。
・下記の先頭の;(コメントアウト)を外すした。
extension=php_pdo.dll
extension=pdo_mysql
extension=php_pdo_mysql.dll
extension=mysqli
extension=php_mysql.dll

いろんなサイトを見て試しましたが、どうしても解決できません。
よろしくお願いいたします。

追記(2019.10.24/17:08)
ちなみに、php.iniを編集する際は、XAMPPのApacheのConfigからPHP(php.ini)を押下して開いています。

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

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

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

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

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

m.ts10806

2019/10/24 07:27

>PHP5 マイナーバージョンまで記載してください。 また、ini編集後、Apache再起動はしましたか?
yuriii

2019/10/24 07:31

PHP7.3.10でした。すみません! Apacheの再起動はしました!
m.ts10806

2019/10/24 07:33

MySQLも起動はしてますよね
yuriii

2019/10/24 07:34

はい!しています!
guest

回答2

0

extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_mysqli.dll

じゃないかな。アイが足りない。

参考:
WindowsでNginx+PHP+MariaDB環境 – テックメモ
Nginx入りのWindows ServerにWordPressを導入する件 - Qiita

投稿2019/10/24 08:01

編集2019/10/24 08:05
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yuriii

2019/10/24 08:06

試してみましたが駄目でした...>< ありがとうございます!
退会済みユーザー

退会済みユーザー

2019/10/24 08:10

指摘のとおりに直しているかどうか、こちらではわからないので、 ダメでしたで諦めずタイプミスがないか、よく見比べてほしい。
退会済みユーザー

退会済みユーザー

2019/10/24 08:18

修正を加えたphp.iniが正しく保存できていないとか、 複数箇所にphpを設置していてnginxと連携しているのを見誤っていないかとか、 点検するべきことはいくつもあるはず。
yuriii

2019/10/24 08:19

すみません>< 一応、よく見比べたのですが、逆にコメントアウトを無駄に外してしまって、エラーになるということもるのでしょうか?? 下記が現状になります! extension=bz2 extension=curl extension=fileinfo extension=gd2 extension=gettext ;extension=gmp ;extension=intl ;extension=imap ;extension=interbase ;extension=ldap extension=mbstring extension=exif ; Must be after mbstring as it depends on it extension=mysqli extension=php_mysqli.dll ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client ;extension=odbc ;extension=openssl ;extension=pdo_firebird extension=pdo_mysql ;extension=pdo_oci ;extension=pdo_odbc ;extension=pdo_pgsql extension=pdo_sqlite extension=php_pdo.dll extension=php_pdo_mysql.dll ;extension=pgsql ;extension=shmop 丸投げみたくなってしまい申し訳ないです><
退会済みユーザー

退会済みユーザー

2019/10/24 09:11

Windowsの場合は、dllファイル名を指定する恰好なので、 dllのつかない行をいくら書いても意味がありません。
guest

0

https://teratail.com/questions/3447

こちら参考になりそうです

投稿2019/10/24 07:26

hanhunhun

総合スコア100

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

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

yuriii

2019/10/24 07:33

ありがとうございます! こちらのサイトも拝見したのですが、サーバがngnixなので、Windowsだと効果がないみたいでした...。
hanhunhun

2019/10/24 07:47

あとはextension_dirを絶対パスで書いているかどうかですかね それと読み込んでるdllの一覧がphpinfo()の画面の中にあると思うんでその中に該当のdllが表示されているか確認してみてください
yuriii

2019/10/24 07:57

phpinfo()のextension_dirの欄には、C:\php\extと書いてあります。 それをそのまま絶対パスでextension_dirに書いたらいいのでしょうか? ➡試してみましたが、変わりませんでした...>< 実際、C:\php\extというディレクトリは存在せず、C:\xampp\php\extというディレクトリにphp_pdo_mysql.dllファイルがあるので、そちらで設定しているのですが、間違いでしょうか?
hanhunhun

2019/10/24 08:09

それで大丈夫だと思います あとはPHPがdllをちゃんと認識しているかの確認ですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問