実現したいこと
PDOでもDBに接続して操作したい。
$pdo = DB::connection()->getPdo(); $users = $pdo->query("SELECT * FROM `T_Cancel` LIMIT 1")->fetchAll(PDO::FETCH_ASSOC);
や
$pdo = new PDO( // ホスト名、データベース名 'mysql:host=;dbname=;charset=utf8;', // ユーザー名 '', // パスワード '', // レコード列名をキーとして取得させる [PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC] );
など試しています。
発生している問題・分からないこと
Class 'App\Console\Commands\PDO' not foundがでてPDOがつかえない。
エラーメッセージ
error
1Class 'App\Console\Commands\PDO' not found
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
php.iniに下記追加
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
\xampp\php\extにphp_php_pdo.dll.dllが無いとエラーでるのですが、
php_php_pdo.dll.dllはどこからダウンロードすればいいのかわかっていない。
補足
PHP 7.2.34
Laravel Framework 6.20.44
DB::select();は使えていますが、PDOで行いたいです。
Laravel関係なく純PHPからもPDOが使えてないということでしょうか(試してみてください)
ClassのNotFoundとドライバーの有無は直接的な関係はないと思います。
echo php_info();でPDOが使用可能かどうか確認してください。
xamppにpdo.dllが入ってないというのは考え難いところではありますね。
もしMacOSにXAMPPならそれ自体が問題になる可能性は高いですが。
XAMPPはインストールされているという認識でよろしいですか?
XAMPPでPDOは標準的に用意されているはずですが・・・
yambejp様
XAMPPはインストールしております。
基本はあるのですね。
となるとpdo.dllを入手するには再度インストールな感じでしょうか?
ところでLaravelであえてPDOというのはどういう理由でしょうか。
(言い方はあれだけどXAMPPを使うなと言う意見はもっともで、環境構築から最適化されてないと言えます)
そもそもPDO使うならLaravelである必要はないので。
率直に、質問に対する回答です。まずはphp_infoでPDOが使用できる環境かどうか確認してください。もし、使用できない環境ならばxamppでApacheの再起動してください。php.iniはドライバに追記すれば、すぐ反映されるというものじゃないです。
またデフォルトでpdoが使用できない場合、使用xamppが古い可能性があります。php7.xに適したxamppを入れ直すのも一つの手です。

回答2件
あなたの回答
tips
プレビュー