1

多くの mysql_query 呼び出しを使用する Web アプリを持っています。主な理由は、これらをチュートリアルや、クエリの実行方法を学んだ他の場所で見つけたからです。多くの人は、mysql はいつか消えるので、mysqli に切り替えることを提案し続けていますが、この切り替えは、最後に i を追加するよりもはるかに難しく、すべてのコードを書き直す必要があることを読みました。

切り替える価値があるかどうかを尋ねた場合、ほとんどの人が「はい」と答えると思います。私の質問は、mysqli に段階的に切り替えることは可能ですか、つまり、呼び出しやページが記述されたときに徐々に更新することは可能ですか、それとも古いサイトをフリーズして、すべての mysqli または pdo サイトとして全体をやり直す方がよいでしょうか。よく言えば、サイト全体をやり直すためのすべての作業とコストを考慮に入れています。明らかに、古いmysqlを使用してうまく機能することをやり直すのではなく、サイトの新しい機能や物事にリソースを割り当てることに魅力があります.

ありがとう!

4

3 に答える 3

1

PHPからの通知によるとmysql_*、少なくともPHP 5.5 / 6.0までは拡張機能が正式に非推奨になることはないため、これらの関数が完全になくなるか、E_DEPRECATEDエラーが表示される前に、スクリプトを書き直す時間があります。http://news.php.net/php.internals/53799

おそらく、コードがスパゲッティで整理されていない場合は、再コード化/リファクタリングの時間です。MVCは、コントローラーモデルの場合と同様に、すべてのクエリが1つの場所にあり、データベース接続/CRUDが単一のオブジェクトプロパティにあるので優れています。

于 2012-06-03T02:15:04.627 に答える
1

もし私があなたの立場なら、アプリケーションのアーキテクチャを全体的に改善する機会と捉えるでしょう。

DB との対話のみを処理するコードをアプリケーションの残りの部分から分離することから始める必要があります。最善の方法は、DataMapperのような構造に移行することです。

その時点で、PDO または MySQLi への切り替えは簡単な作業になります。

MVC まで行く必要はありませんが、アプリケーションのさまざまな責任 (プレゼンテーション ロジック、テンプレート化、ルーティング、ビジネス ロジック、データ アクセス ロジックなど) を分離すると、MVC に漠然と似たものになってしまいます。

于 2012-06-03T10:47:33.850 に答える
0

mysql の適応に関する最初のポイント。適切な選択は、最初に独自のアダプター/ラッパーを使用することでした。たとえば、クラス MyMysql を query()、rowCount()、eth メソッドで記述します。そして、現時点で mysql/mysqli/pdo を切り替えることに疑問の余地はありません。

切り替えについての 2 つ目のポイント。mysql と mysqli の違いはそれほど大きくありません。はい、単語の末尾に「i」文字を使用するだけではありませんが、ほとんどのクエリは非常に似ています。私の記憶では、たとえば mysql_fetch_assoc に相当するものはありません(ただし、これには mysql_fetch_array があります)。「mysql」->「mysqli」の通常のパターンを使用するよりも難しいかもしれませんが、それほど難しくありません。mysqli を恐れないでください。これは、mysql ドライバーの論理的な継続です。

于 2012-06-03T02:32:16.073 に答える