12

重複: mysqli または PDO - 長所と短所は何ですか?

主に学習ツールとして、また可能であればパフォーマンスを向上させるために、Web サイトを mysql から mysqli または pdo に移行することを検討しています。

http://php.net/manual/en/mysqli.overview.phpを読みましたが、どちらも私のニーズに合っているようですが、どちらにも大きく傾いていません。

このサイトは現在、主に非オブジェクト指向のコードを使用していますが、私は他の言語で OO の経験があります。クエリの大部分は、更新/挿入がほとんどない単純で複雑な選択ステートメントです。私自身の教育とこの特定のサイトの両方で最も役立つと思われるものは何ですか?

追加情報が必要な場合はお知らせください。

ありがとう。

4

5 に答える 5

20

PDO プロ:

  • 5.x の時点で PHP にネイティブ
  • 数値で索引付けされた ? とは対照的に、名前付きパラメーターをサポートします。
  • 同じ抽象化ライブラリが複数の異なる RDBM をサポート

Mysqli コン:

  • データベースで大きなオブジェクトを適切に保存および取得する際に問題があります。
  • 名前付きパラメーターはサポートされていません。

それ以外の場合、両方のライブラリは基本的に同じものの異なるフレーバーです。どちらもパラメーターを引用する関数を持ち、パラメーター化されたクエリをサポートします。

上記の議論のいずれにも動じない場合は、構文、スタイルなどに基づいて、好みのライブラリを使用してください。

于 2009-04-21T02:14:30.057 に答える
9

PDOによってパフォーマンスが向上するとは思いませんが、次の2つの非常に魅力的な長期的なメリットがあります。

  • わずかなコード変更で他のデータベースを使用するようにアプリをスケーリングできます
  • PDOライブラリにはセキュリティの多くが組み込まれています

#1と#2の利点を理解していない場合は、実証済みのmysqlライブラリを使用してください(少なくともmysql_real_escape_stringを使用しています)。

私が新しいPHPデータベースライブラリを学んでいた場合、特に自分のサーバー以外のさまざまなシステムで使用できるWebアプリを作成している場合は、PDOが最適な方法だと思います。

于 2009-04-21T14:25:21.953 に答える
8

http://www.php.net/manual/en/mysqli.overview.phpから:

PDO にはクリーンでシンプルな移植可能な API などの利点がありますが、主な欠点は、MySQL サーバーの最新バージョンで利用可能な高度な機能のすべてを使用できないことです。たとえば、PDO では、MySQL の複数ステートメントのサポートを使用できません。

于 2011-10-14T18:43:54.230 に答える
4

PDO は他よりも優れたセキュリティを提供しますが、PDO よりも高速で簡単であり、ほとんどの API/構文は古い mysql 拡張機能とまったく同じであるため、移行のために mysqli に移行することをお勧めします。

簡単な比較については、こちら (下にスクロール) を参照してください:
PHP & MySQLi

編集:前に読んだのと同じリンクのようです、ごめんなさい

于 2009-04-21T03:14:24.780 に答える
1

ORM と抽象化ライブラリを構築するとき、MySQLi と PDO を使用して、どちらがより優れたパフォーマンスを発揮するかを確認しました。MySQLi の方が高速でしたが、それだけで選択するには不十分でした。

MySQLi/MySQL/SQLite またはその他の独立したライブラリが PDO より優れている点の 1 つは、結果で見つかった行数を返すことです。これは、結果をテストするのに役立つことがよくあります。一方、PDO では、結果を fetchAll() して count() するか、前に count クエリを実行して結果の数を確認します。したがって、この問題をさまざまな方法で処理するように適応する必要があります。

ああ、最終的には MySQLi ではなく PDO を選択しました。

于 2009-07-19T18:02:52.950 に答える