2016-02-25 22 views
5

PHP MySQLを使用して5年前にウェブサイトを設計しましたが、問題なく問題なく動作します。 MySQLは公式にPHP 5.5以降で廃止され、PHP 7以降では廃止されたと聞いています。また、PHPにはMySQLに接続する3つのAPI(MySQL、MySQLi、PDOなど)があります。私のWebサーバーは頻繁に更新されます。ウェブサイトをPHP MySQLiまたはPDOにアップグレードする必要がありますか?

私は安全のために、MySQLiやPDOのような新しいAPIに移行しなければならないことを理解しました。今私はMySQLiかPDOを選択するのか混乱しています。また、そのような場合に互換性/移行オプションがありますか?

+0

MySQLiまたはPDOを選択するかどうかについては、主に意見に基づいていますが、PDOが最も安全だと言う人もいますが、正確かどうかはわかりません。もしあなたがmysqlから来たら、私はMySQLiが簡単に把握できると信じています。 – Epodax

+0

PHPバージョンもMySQLバージョンもアップグレードしないことをお勧めします。ウェブサイトが動作している場合は、動作させてください。バージョンのアップグレードは手動で行う必要がありますが、手動で行う必要はありません。 –

+1

PDOに関するガイドは私が明白な選択です - https://phpdelusions.net/pdo – DTH

答えて

2

答えはかなり簡単です。

大多数のPHPユーザーのように、中間ラッパーなしでPDOが唯一の選択肢であるのように、アプリケーションコード内でデータベースAPI関数を使用する場合は、多くの場合、 mysqliの操作は手動で行う必要があります。

非常にアプローチが大幅に変更されているため、移行オプションはありません。クエリ内に変数を配置するのではなく、クエリ内で特別なマークで置換する必要があります。このプロセスを自動化する方法はありません。

+0

PDOは唯一の選択肢ではありません。 mysqli_も選択肢です。また、mysql_に匹敵するようにいくつかの点でより良い選択肢があります。どのくらい書き換えが望まれているか、あるいは許可されているかによっては、PDOは実現可能な選択肢ではないかもしれません。 – jmarkmurphy

+0

@jmarkmurphyもう1人は読むことができません。なぜ私は驚いていないのですか? –

+0

@jmarkmurphyコメントは事実上間違っています。 1) 'mysqli'はMySQLだけで動作します2)' mysqli'はもっと複雑なインターフェースを持っています3) 'mysql_'に匹敵するのは前進ではなく後退であるということです。 - それで、それは良くないです。 「PDO」は実現可能な選択でさえないかもしれないと述べることは理にかなっていない。単一の証明可能な証拠で裏付けされておらず、あなたの*意見*でしかない。そして、数学と論理に頼っている分野で、彼らの意見について何を知っていますか? –

-2

PDOとMySQliはどちらもデータベース接続に使用されており、どちらも独自の利点があります。より詳しく見ると、PDOが勝利しますが、実際に1つのデータベースプロバイダーに固執すれば、私の個人的な最良の選択はMySQLiを使用することです。

また、からいくつかの良い点を抽出します:http://code.tutsplus.com/tutorials/pdo-vs-mysqli-which-should-you-use--net-24059

4

は、これらの拡張機能の両方を見てみましょう。

PDO

PDOはデータベース中立である - あなたが別のデータベースに移動することを決定した場合にのみ、そうdatabases

の数十で動作するように1つのAPIを学ぶ必要がある、あなたが変更されるだろう唯一のことDSN(データソース名)です。

名前と '?'の両方をサポートしています。準備されたステートメントのプレースホルダー。

DrupalはPDOを使用します。一方ののMysqliでのMysqli

は、MySQLデータベース用に特別に設計されており、MySQLが推奨されます。 MysqliはMysqlとMariaDBデータベースで動作します。

「?」のみのサポート準備されたステートメントのプレースホルダー。

JoomlaのはのMysqli

結論

を使用して、多くの矛盾の引数がありますのMysqliやPDOが高速に実行され乗り切ります。 MysqliとPDOの両方が同じ基本ドライバを使用してデータベースにアクセスし、性能を比較する価値はない。

したがって、MysqliまたはPDOで作業しているときは、明らかな勝者はありません。しかし、あなたがMysqliを使い、その後別のデータベースを使いたいとしましょう。それは難しい移行です。

PDO on Mysqliの主な強みは、準備されたステートメントのプレースホルダーであり、私はMysqliに比べてPDOを選んだ理由です。

+0

"DNS"を変更して別のデータベースに移動しようとしたことがありますか? –

+0

@ YourCommonSense、指摘ありがとう:) – user3284463

+0

質問は愚かなタイプミスではなく、DSNを変更するだけでデータベースのバックエンドを切り替える実際の経験でした。 –

関連する問題