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

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

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

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PDO

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

Q&A

解決済

2回答

227閲覧

LaravelでPDOを使いDB操作したい

yoheiiii

総合スコア87

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PDO

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

0グッド

0クリップ

投稿2024/04/03 00:10

実現したいこと

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で行いたいです。

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

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

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

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

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

m.ts10806

2024/04/03 00:18 編集

Laravel関係なく純PHPからもPDOが使えてないということでしょうか(試してみてください) ClassのNotFoundとドライバーの有無は直接的な関係はないと思います。
FKM

2024/04/03 00:22

echo php_info();でPDOが使用可能かどうか確認してください。
m.ts10806

2024/04/03 00:23

xamppにpdo.dllが入ってないというのは考え難いところではありますね。 もしMacOSにXAMPPならそれ自体が問題になる可能性は高いですが。
yambejp

2024/04/03 00:24

XAMPPはインストールされているという認識でよろしいですか? XAMPPでPDOは標準的に用意されているはずですが・・・
yoheiiii

2024/04/03 00:59

yambejp様 XAMPPはインストールしております。 基本はあるのですね。 となるとpdo.dllを入手するには再度インストールな感じでしょうか?
m.ts10806

2024/04/03 01:48 編集

ところでLaravelであえてPDOというのはどういう理由でしょうか。 (言い方はあれだけどXAMPPを使うなと言う意見はもっともで、環境構築から最適化されてないと言えます) そもそもPDO使うならLaravelである必要はないので。
FKM

2024/04/03 06:12 編集

率直に、質問に対する回答です。まずはphp_infoでPDOが使用できる環境かどうか確認してください。もし、使用できない環境ならばxamppでApacheの再起動してください。php.iniはドライバに追記すれば、すぐ反映されるというものじゃないです。 またデフォルトでpdoが使用できない場合、使用xamppが古い可能性があります。php7.xに適したxamppを入れ直すのも一つの手です。
guest

回答2

0

LaravelならEloquentを使え。
PDOは使うな。
XAMPPも使うな。

こういうやってることが100%間違ってる質問は後から見た人を誤解させるのでただの迷惑。
徹底的に否定する。

投稿2024/04/03 00:43

pcs

総合スコア361

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

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

0

ベストアンサー

PHPには名前空間があるため、
namespace App\Console\Commands; の中での PDOApp\Console\Commands\PDO とみなされます。

この中でPDOという名前のクラスを使うには、use PDO するか、 \PDO::FETCH_ASSOC とするなどが必要です。

ただ別回答にもある通り、Laravelにはクエリビルダーがありますので、こちらを使ったほうが良いです。PDOクラスを利用するメリットがありません。

参考:
https://www.php.net/manual/ja/language.namespaces.php

投稿2024/04/03 02:57

Eggpan

総合スコア2731

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

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

FKM

2024/04/03 03:13 編集

そもそも、PDOはPHP上で、どんなDBでも同じ記述で書けるので広まったようなものですからね(それまではmysql、postgresqlなどで記述を逐一変えなければいけなかった)。Laravelという設置時に使用DBドライバを選択するフレームワークで使用するメリットは確かにない気はします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問