2016-02-19 26 views
0

我目前正在尝试将一个运行的PHP项目编译为一个.net dll文件。我的Phalanger/PHP解决方案使用PDO和SQLite。当我到了它创建我的PDO对象的部分:在Phalanger中使用SQLite

$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 s是完全不相关的。

在一个Web应用程序中(据我所知),我需要一个PHP.ini,其中定义了我的sqlite dsn。是否有Phalanger的等效文件,特别是当您构建dll时?如何将我的项目指向SQLite驱动程序?

我也尝试创建一个系统odbc dsn调用sqlite没有运气。

有人可以给我一些建议或指向我一个很好的教程吗?

回答

1

哦,哇,菜鸟的错误!我在原始项目中的App.config中创建了Phalanger配置信息,该项目正在编译为dll,但没有在调用该dll的项目中的App.config中。愚蠢,愚蠢,愚蠢!