0

私はすべてにmysqliを使用しています。私が構築した小さなシステムに機能を追加しています。その例のいくつかは pdo です。システムに合わせて mysqli に変換しようとしていましたが、既にビルドしたものを pdo に変更する方が手間がかからない可能性があることに気付きました。私はウェブ全体で pdo と mysqli について読んできました。

しかし、ここで私の質問です。mysqli 以外のものが必要になるのはいつですか? PDO は、mysqli にない 3 つの主要な機能を提供します。12 の異なるドライバー、名前付きパラメーター、および準備済みステートメント。

Web 開発者の場合、18 のデータベース タイプを超える Web アプリケーションを使用する機能は実際には必要ありません。

私が見る唯一の大きな利点は、準備されたステートメントです。

私が使用している唯一の言語が php である場合に切り替える主な理由は何ですか? PHPは名前付きパラメータをサポートしていますか?

pdoを使用してselectから結果の数を取得する方法さえありますか?

4

1 に答える 1

1

あなたはなんとかすべてを混乱させました。

あなたの声明について

  • mysqliネイティブの準備済みステートメントのサポートも提供します
  • 名前付きパラメーターは、実際には目的もなくコードを肥大化させているだけです。それでも、手動で実装するのは非常に簡単です。必要な機能を実際にプログラムして実装できる、プログラマーと呼ばれる人々がいます。
  • 12 の異なるドライバーは、実際にはバブルです。実際に機能するものはごくわずかであり、DSN を変更するだけではデータベースを切り替えることはできません。ORM などのより高いレベルの抽象化が必要です。

見逃したことについて

  • プリペアド ステートメントを処理する mysqli の方法は、初心者には確かに複雑すぎます。
  • 実際のところ、mysqli は単なる API であり、そのままでは使用すべきではなく、より高いレベルのドライバーのソース マテリアルとしてのみ使用してください。
  • それでも、PDO のような一般化されたドライバーには明らかに欠けている mysql 固有の核心をたくさん持っています。

つまり、簡単に言えば

  • mysql で使用するデータベース抽象化ライブラリを作成する場合は、mysqli を使用してください。
  • API を使用する唯一のアイデアがコード内でメソッドを直接呼び出すことである場合、PDO はすでにセミ DAL であり、準備されたステートメントのサポートがはるかに使いやすいため、PDO が唯一の選択肢です。

その他の質問について

PHPは名前付きパラメータをサポートしていますか?

PHP は、名前付きパラメーターとは何の関係もありません。

pdoを使用してselectから結果の数を取得する方法さえありますか?

あなたはそれを必要としません。結果が得られたら、単純に数えることができます。

于 2013-08-07T05:41:42.187 に答える