【问题标题】:SQLite use in PhalangerSQLite 在 Phalanger 中的使用
【发布时间】:2016-02-19 22:46:01
【问题描述】:

我目前正在尝试将功能正常的 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 应用程序中(据我所知),我需要一个 PHP.ini,其中定义了我的 sqlite dsn。 Phalanger 是否有等效文件,特别是在构建 dll 时?如何将我的项目指向 SQLite 驱动程序?

我也尝试过创建一个名为 sqlite 的系统 odbc dsn,但没有成功。

谁能给我一些建议或指点我一个好的教程?

【问题讨论】:

    标签: php visual-studio sqlite pdo phalanger


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多