要するに
mysqli から mysql に切り替える必要があります。PHP の mysql 拡張機能の関数を使用するが、mysqli の次の関数の機能をサポートするラッパー クラスが必要です。
query(), real_escape_string(), multi_query(), store_result(), more_results() , next_result(), use_result(), mysqli_connect_error().
たとえば、永続的な接続に mysql_pconnect() を使用します。
基本的に、すべての関数のロジックと戻り値の型が同じであることを確認する必要があります。関連するすべての関数のドキュメントに対して検証する必要があり、おそらく mysqli 関数の実装も調べる必要があります。
しかし、誰かが似たようなものを思いつきましたか?
背景当社のシステムでは、モバイル デバイスの検出にTera-WURFL
を使用しています。私たちの運用 PHP バージョンは 5.2.6 で、TeraWurfl は次のものを使用するデータベース コネクタ TeraWurflDatabase_MySQL5.php を使用しているため、いくつかの問題に直面しました。
- php 5.2.9 までサポートされていない mysqli_connect_error() (私たちは php 5.2.6 を使用します)
- php 5.3.0 までサポートされていない永続的な接続 (私たちは php 5.2.6 を使用します)
mysqli は、php 5.3.0 まで完全にはサポートされていません。
したがって、2つのオプションがあります-
PHP のアップグレード - ただし、使用している OpenX バージョンはこれらの最新の PHP バージョンに対してテストされていないように見えるため、かなりの量の回帰テストが必要になります。私たちのシステムのコアは、Openx を中心にしています。
MySQLi と同じオブジェクト指向 API を持つラッパー クラスを記述します。これはよりシンプルに見えます。
そこで、ラッパー クラスを作成するために必要な労力を見積もることにしました。これが私たちが考えたことです-
PHP は、その mysql 拡張機能に手続き型インターフェースのみを提供TeraWurflDatabase_MySQL5.php
し、オブジェクト指向の方法で mysqli の関数を呼び出すため、mysql に切り替えるには、mysqli クラスと同じインターフェースを提供するラッパー クラスを作成する必要があります。
mysqli と同じ名前の関数 (query()、store_result() など) を作成して同様のパラメーターを返すことができるため、TeraWurflDatabase_MySQL5.php
ファイル内のオブジェクトの開始を変更するだけで済みます。
誰もこれをやったことがありますか?