【问题标题】:Making CakePHP work with SQL server 2008使 CakePHP 与 SQL server 2008 一起工作
【发布时间】:2011-08-07 05:13:56
【问题描述】:

我可以使用 Microsoft Drivers for PHP for SQL Server 从 PHP 调用 SQL server 2008 但由于需要 Sqlsvr 驱动程序类才能将 CakePHP 与 SQL server 2008 一起使用,我从 following repository 获取驱动程序文件。

但是,当使用以下 database.php 运行我的测试 cakephp 时

 <?php
 class DATABASE_CONFIG {

    var $default = array(
    'driver' => 'sqlsvr',
    'host' => 'localhost\EPHP',
    'login' => 'sa',
    'password' => 'xxxxxxx',
    'database' => 'Blog',
    );
  }
  ?> 

我收到以下错误:

致命错误 (256):ConnectionManager::loadDataSource - 无法导入 DataSource 类 .DboSqlsvr [CORE\cake\libs\model\connection_manager.php,第 185 行]

然后我已经阅读了所有you-cannot-make-cakePHP-work-with-sql-2008 discussions。现在有解决办法吗?

更新:让我重新表述我的问题。如果有人成功使 CakePHP 与 SQL 2008 一起工作,我将不胜感激,并告诉我他遵循的过程。

【问题讨论】:

  • 您使用的是哪个版本的 CakePHP?
  • 你试过了吗? github.com/cakephp/datasources
  • Arjan,我有最新版本(1.3.11)。
  • RSK 是的,这是我做的第一件事并得到了同样的错误。

标签: php sql-server-2008 cakephp driver


【解决方案1】:

经过一番研究,我找到了这篇文章(http://book.cakephp.org/view/1652/Plugin-DataSources-and-Datasource-Drivers)。基本上,您不能将驱动程序文件放在“工厂”驱动程序文件所在的目录(\cakephp\cake\libs\model\datasources\dbo)中。相反,您应该将驱动程序文件放在烤蛋糕的以下目录中。

 your-cake-application\plugins\your-plugin-name\models\datasources\dbo

然后您应该相应地更改配置中的 database.php。

 <?php
 class DATABASE_CONFIG {

    var $default = array(
    'driver' => 'your-plugin-name.DboSqlsrv',
    'host' => 'localhost\EPHP',
    'login' => 'sa',
    'password' => 'xxxxxxx',
    'database' => 'Blog',
    );
  }
  ?> 

之后,我就可以运行我的 cakephp 应用了。

【讨论】:

  • 我实际上遇到了与您以前相同的问题。我已将dbo_sqlsrv.php 放入my_site\plugins\plugin_name\models\datasources\dbo。我还设置了database.php,就像你在这篇文章中所做的那样。还有其他东西(代码、外部文件等)吗?它仍然对我不起作用。我收到一条错误消息,上面写着SQL Error: An invalid parameter was passed to sqlsrv_query
【解决方案2】:

假设您在文件夹 app/model/datasource/dbo_sqlsrv.php 中有数据源,请像这样加载它:

  <?php
 class DATABASE_CONFIG {

    var $default = array(
    'datasource' => 'sqlsvr',
    'host' => 'localhost\EPHP',
    'login' => 'sa',
    'password' => 'xxxxxxx',
    'database' => 'Blog',
    );
  }
  ?>

区别在于“驱动程序”与“数据源”关键字

【讨论】:

  • 何塞,你有没有做过这个(cakephp with sql server 2008)?不幸的是,我之前尝试过,它没有用。无奈之下,我刚刚又白做了一次。
  • 是的,如果您不断收到相同的错误,是因为您将数据源放置在错误的位置。它位于哪里?
  • 我在你建议的地方有文件。 d:\cakePHP\app\models\datasources\dbo_sqlsrv.php
  • 何塞,虽然您的文件位置不正确(我猜驱动程序不再用作数据源),但您关于文件位置的提示有所启发,我最终解决了这个问题。为此,+ 1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多