多くの人が pdo を使用している、または pdo に移行していることに気付きました。これまで使用したことがなく、変更することに本当に消極的でした。とにかくまだ変更していませんが、pdo を使用している人々から知りたいです。毎日、なぜそれに変更する必要があるのか、mysql_* または mysqli_* よりもどのような利点があるのか 、それについて多くのことをグーグルで調べましたが、まだ満足のいく答えは見つかりませんでした. ありがとう
3 に答える
1 つのアプリで複数のデータベースをサポートすることではありません (注意して行うことはできますが)。将来データベースを簡単に変更できるようにすることではありません (ただし、それは役に立ちます)。それは、データベースに関係なく使用できる、一貫した適切なインターフェイスを 1 つ持つことです。これは、プログラマー (スキルをより広く適用できるようにすること) とプロジェクト (プログラマーが飛び込みやすくすること) に利益をもたらすだけでなく、データ アクセス層の 1 層上に位置するライブラリを作成することもはるかに簡単になります。Perl は 20 年間 DBI を使用してきましたが、これは明らかに良いことでした。PDO は非常によく似た概念です (実際、DBI のインターフェースの少なくとも半分を盗みます)。
PDO は、さまざまな形式の SQL データベースへの透過的なアクセスをサポートすることを目的としています。これは、いわゆる PHP の「データ アクセス アブストラクション レイヤー」です。
アプリケーションが SQL99 標準クエリのみを使用するように制限する場合、上記は実際には当てはまるはずです ;)。
また、PDO は、新しいデータベース拡張機能を構築しようとしている拡張機能開発者にとって信頼できるインターフェイスです。PDO 用のドライバーを作成するだけで、よく知られた PHP のインターフェース (PDO インターフェース) を使用してデータベースにアクセスできます。
結論:
- PDO は、さまざまな種類のデータベース間で PHP のデータベース アクセスを類似させることを目的としています。
- SQL99 標準クエリを使用している場合は、接続文字列を変更するだけでデータベース製品を変更できます
- PDO は、拡張機能の開発者が使用できるデータベース アクセス用のよく知られたインターフェイスです。
PDO により、2 つの異なる DBMS 間の移行が容易になります。また、PDO がサポートするすべての DBMS をサポートするアプリケーションに使用する人もいます。ただし、これは通常、間違った方法であることに注意してください。ソフトウェアについてあまりよく知らない場合は、それをサポートしているとユーザーに言うべきではありません。嘘をつくことになるからです。実際の問題を解決できなかったからです。
mysqli は抽象化ではありません。これは MySQL 用の高速で信頼性の高い API であり、最初の選択肢となるはずです。