0

mysql_connect()によって開かれた接続を PDOに転送または再利用する方法があるかどうかを知りたいだけです。私はこれが間違っていることを知っています(そのような考えを広めたいと思っています)が、私は次のようなことを望んでいました

$pdo = new PDO($mysql_connect_link); // yes this is wrong, i know!

例えば。

その理由は、クラスでクエリなどを管理するために使用したいためですがPDO、クラス自体はデータベースへの接続を開きません。事前に接続を確立する必要があります(今のところ、標準のmysql_*()関数セットを介して確認しています。ええ、知っています。)

mysql_* ユーザーがor を介してデータベースへの接続を開いているかどうかに関係なく、クラスのクエリが機能するようにしたいとPDO思います...この問題について誰か考えや提案はありますか?

4

2 に答える 2

1

mysql_connect()によって開かれた接続をPDOに転送する方法があるかどうかを知りたいだけです。

いいえ

ユーザーがmysql_*またはPDOを介してデータベースへの接続を開いているかどうかに関係なく、クラスのクエリが機能するようにしたいと思います...

あなたの理由を理解するのはかなり難しいです。

両方のドライバーを保持したい場合は、2セットの関数も保持する必要があります。そして、クラス構造を完全に変更します。共通のメソッドとそれらの2つの実装を備えた抽象クラスが必要です。クラスに渡される接続はありませんが、クラス自体が接続を管理する必要があります。しかし、そのような労力の価値があるとは思えません。

レガシーmysql_*コードと一緒にクラスの使用を許可したいだけの場合は、PDOから別の接続を開くだけです。どんな犠牲を払っても避けられるのはそれほど悪いことではありません。それはただのつながりです。サーバーにわずかな負担がかかりますが、このようなサンドイッチスパゲッティを使用するアプリケーションでは問題はほとんどありません。

于 2013-01-04T06:50:53.550 に答える
1

mysql_ 関数を PDO に移植するだけです。

$pdo = new PDO($mysql_connect_link);

必要なパラメーターのために間違っています ( http://php.net/manual/fr/pdo.construct.phpを参照)。ただし、技術的には、両方の接続を並行して実行できます。ただし、いいえ、明らかに、ミル mysql_connect を実行して PDO クエリを実行することはできません。

于 2013-01-04T03:20:20.607 に答える