2

2.2.3にアップグレード中のCakePHP1.3アプリケーションがあります。このアプリの要件の1つは、別のアプリケーションのMSSQLデータベースにクエリを実行して、認証を実行し、ユーザーデータを引き出すことができるようにすることです。

PHP / PDO / MSSQL lib(MySQL、sqlite、およびsqlite 2用のPDOはすでにあります)をインストールするためにWebホストを調査し、嫌がらせを2日間無駄にした後、かなり厳しいように見えます。

TL; DR:LinuxでPDOMSSQLクエリを実行する方法を見つける必要があります。

暴言を始める:

私を夢中にさせているのは、これです。CakePHPは、すべてのDBラッパーをPDOで作成するために、BROKEMSSQLとの互換性を開発しています。Linuxサーバー上に1.3アプリがあり、MSSQLデータベースに正常に接続していて2.2にアップグレードしたい場合は、PDOを使用することが重要であるため、そのデータベースに接続できなくなります。ユーザーの既存の機能を破棄します。

CakePHP 2.x Docsは、この落とし穴についてユーザーに警告しません。彼らが言うのは、PDOが必要だということだけです。

LinuxではPDO/MSSQLが機能しないことに注意する必要があります。または、ストックCakePHPで提供されるSqlserver.phpデータソースに代替手段を追加して、アプリをアップグレードするユーザーがアプリケーションを2.2xで再び機能できるようにする必要があります。

1.3から2.2に移植するのに1週間の時間を無駄にしたので、今は本当にこれに夢中になっています。手動でクエリを記述してCakePHPの優れたデータベース抽象化を無視するか、すべての作業を変換する必要があるようです。 1.3に戻り、CakePHPの最新バージョンでのすべての新しい改善をあきらめます。

4

2 に答える 2

3

トリックは次のとおりです。

sudo apt-get install php5-sybase

何らかの理由で拡張子が mssql と呼ばれていない

sybaseは私にとってはうまくいきました

于 2012-11-23T15:53:15.110 に答える
0

Microsoft から ODBC ドライバーをインストールし、odbc 接続文字列を設定する必要があります。このプロセスは少しトリッキーかもしれませんが、機能し、ドライバーは安定しています。

次に、 $dbh = new PDO("odbc:CONNECTIONNAME", $user, $password); を使用できます。PDO経由で接続します。

並べ替えが完了したら、MSSQL データ ソースを引き続き使用できると思いますが、接続文字列を変更します。

于 2013-07-17T03:25:22.840 に答える