現在、機能している PHP プロジェクトを .Net dll にコンパイルしようとしています。Phalanger/PHP ソリューションでは、PDO と SQLite を使用しています。PDO オブジェクトを作成する部分に到達すると、次のようになります。
$this->db = new \PDO('sqlite:'.$fileName, null, null, [PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
単純な「ドライバーが見つかりません」という例外が発生します。
あまり有用な情報を見つけることができないので、誰かが経験を積んでいることを願っています.
私のプロジェクト参照には、次のものがあります。
- PhpNetPDO
- PhpNetPDOSQLite
- PhpNetSQLite
次の App.config もあります。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="phpNet" type="PHP.Core.ConfigurationSectionHandler, PhpNetCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71" />
</configSections>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Phalanger"/>
</assemblyBinding>
</runtime>
<phpNet>
<classLibrary>
<add assembly="PhpNetSQLite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2771987119c16a03" section="sqlite"/>
<add assembly="PhpNetPDO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2771987119c16a03" section="pdo"/>
<add assembly="PhpNetPDOSQLite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2771987119c16a03" section="pdosqlite"/>
</classLibrary>
</phpNet>
</configuration>
App.config はまったく無関係のようですが。
Web アプリケーションでは (私が知る限り)、sqlite dsn が定義されている PHP.ini が必要です。特にdllを構築している場合、Phalangerに相当するファイルはありますか? プロジェクトを SQLite ドライバーに向けるにはどうすればよいですか?
また、sqlite というシステム odbc dsn を作成しようとしましたが、うまくいきませんでした。
誰かが私にアドバイスをくれたり、良いチュートリアルを教えてくれませんか?