2

私はPHPで新しいアプリケーションを作成しており、これは商用アプリケーションとして一般に公開されます。これまでの私の経験は、PHP内のMySQLデータベースでした。

エンドユーザーはデータベース機能を提供する責任があり、PHPアプリケーションはデータベースに接続して使用するだけです。

私の質問は、ユーザーがどのデータベースを使用するかわからないので、PHPでこれをサポートするにはどうすればよいですか?

私が持っている質問は次のとおりです。

  • ODBCは正しい方法ですか?以下でODBCを参照しますが、ODBCが適切な使用方法ではない場合、提案された方法が何であれ、同じ質問が当てはまります。

  • PHP内の同等のMySQLよりもODBC関数を使用して機能/機能を失いますか?

  • 覚えておく必要のあるセキュリティ関連のことはありますか?たとえば、以前のアプリケーションでmysql_real_escape_string()を使用しました。ODBCに相当するものは何ですか(必要ですか?)

  • PHPはODBCを使用してMySQLデータベースに接続できると思いますか?これを可能にするために、MySQLを何らかの方法で構成する必要がありますか?

  • パフォーマンスに関して、ODBCは受け入れられますか?

4

3 に答える 3

1

私はおそらくPDOで標準化するでしょう。多数のデータベースを抽象化し、統一されたインターフェイスを公開します。Cで記述されており、ほとんどの人がデフォルトでインストールします。

ここでの注意の言葉; すべてのデータベースが同じSQL文法をサポートしているわけではないため、そのためのプロビジョニングも必要になる場合があります。これには注意が必要ですが、1つの方法は、PDOとクラスの間にヘルパークラスを定義することです。このヘルパークラスは、ビジネスロジック呼び出しを実際のSQLに変換します。MySQLで機能するものを提供し、ユーザーに他のものを作成させることができますか?:)

于 2012-06-08T15:47:36.220 に答える
1

サポートとパフォーマンスのために、あなたの最良のオプションはおそらくPDO(PHPデータベースオブジェクト)でしょう。これはPHPのコアであり、すべてのメインDBシステムをサポートし、エスケープ文字列などをネイティブに処理します。

不可知論を維持するために、MySQLのみを使用することはできません。たとえば、すべてのSQLデータベースでサポートされていないLIMITaddなどです。

しかし、そうは言っても、最初に確認してください。クライアントにnoSQLデータベースがある場合、または一意の接続文字列でAmazonを使用している場合(たとえば)、問題が発生しています。

于 2012-06-08T15:46:30.853 に答える
1

私の質問は、ユーザーがどのデータベースを使用するかわからないので、PHPでこれをサポートするにはどうすればよいですか?

PHPでデータベース抽象化を使用するためのリンクは次のとおりです。

データベース抽象化ライブラリの目的は、複数のデータベースサーバーとの通信を統一することです。このように考えると、アプリケーションが複数のデータベースをサポートするには、それぞれで同じ機能を実行するために異なるコード行が必要になります。抽象化ライブラリを使用すると、アプリケーションは、ライブラリがサポートするデータベースと通信するために1セットのコードのみを必要とします。これにより、PHPアプリケーションで使用できるデータベースサーバーオプションの数が大幅に増加します。

http://www.hosting.com/support/programming/using-adodb-to-build-a-database-agnostic-php-application

于 2012-06-08T15:37:38.067 に答える