タイトルの通りなのですが、mysqliとPDOは何が違うのでしょうか。
それぞれのメリット・デメリットを含め教えて欲しいです。
ちなみに、オブジェクト指向についてはほとんどわかりません。
経験はなく、クラスとかインスタンスとか、なんとなく知っている程度です。
大雑把な質問だと思いますが、よろしくお願いします。
<追記>
すみません。最初から書けばよかったのですが、
私の場合はMySQLを使っているので、OracleやMongoDBなど他のデータベースは使用しないという前提でお願いします。
<追記1>
今のところ明確なご回答が得られておりませんので、回答いただいた方には申し訳ないですがベストアンサーは保留とさせていただきます。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
以下に、両者(と、"mysql"API)の機能比較が載っています。
http://php.net/manual/ja/mysqlinfo.api.choosing.php
また、以下のページが、上の表をわかりやすく説明してくれていると思います。
http://pgmy.github.io/blog/2014/04/04/php-mysql-api/
投稿2016/03/21 11:43
総合スコア4791
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/22 16:47
2016/03/23 01:56
2016/03/23 02:38
2016/03/23 02:45
2016/03/23 03:02 編集
0
三年も前なので今更ですが、
PDOとMysqliの比較で言えば、下記URLが参考になるかと思います。
https://qiita.com/mpyw/items/b00b72c5c95aac573b71
記事後半部分に比較している項目があります。
大きな違いは
mysqli
・メリット・・・より高速に処理が可能であること、マルチクエリが使用出来る
・デメリット・・・名前付きプレースフォルダが使用できない、DBの変更には対応できない。
PDO
・メリット・・・DBが変更されても問題無い。名前付きプレースホルダが使える。
・デメリット・・・マルチクエリができない、プリペアドステートメントで型を指定しながら複数のバインドが同時にできない
などでしょうか。
詳しくは記事を見ていただいた方がいいかと思います。
パフォーマンスを相当意識するのであればMysqliもありなのかなと思いますが、
他の皆様もおっしゃっているようにDBが変更された場合はとんでもない修正コストが発生します。
ただ、実際のところDB変更を行うことってそうそうないとも思うので、要件次第でしょうか。
投稿2019/10/16 07:08
編集2019/10/16 07:16総合スコア98
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
PDOを使っていくのがよろしかろうと存じます。
投稿2016/03/23 02:11
総合スコア13
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
mysqli=拡張モジュール(標準で入ってなくて、入れたら便利になるやつ)と
pdo=抽象化モジュール(標準で入ってて、便利なやつ)では、比べる土俵が違うかもですが。
ざっくり、pdoのメリットは、よりセキュアになってて、向こう1、2年の間に非サポートにあはならないだろうという安心感があること。
mysqliは、、自分も知りたい、誰か教えて下さい(笑)
投稿2016/03/21 10:18
総合スコア120
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ざっくりいうと、
PDO = 汎用のデータベース操作用ライブラリ。設定を変更するだけで別の RDBMS でも動く(ただし当然ながら、SQL の方言などは吸収してはくれません)
mysqli = MySQL 専用の操作用ライブラリ。MySQL がもともと用意しているライブラリを直接使用して操作しているので、速度は速くなる。反面、他の RDBMS に変更する際には全面書き直しが必要。
mysqli でないとできないこととしては、ノンブロッキング非同期クエリがあるくらいですか。
逆に mysqli だと、SQL のプレースホルダが ? しか使えません。
どちらがよいかというなら、PDO を使った方がよいかと思います。
プレースホルダが ? しか使えないと、順番を意識しなくてはならなくて面倒ですしバグる確率上げてしまいますから。
※DB の引っ越し(別 RDBMS への移植)については、あまり考える必要はないかと思います
投稿2019/10/16 08:19
総合スコア13703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/21 10:44
2016/03/21 11:18