【问题标题】:Codeigniter 3 + php 5.6 + xampp + sqlserver 2008 + win7 64xCodeigniter 3 + php 5.6 + xampp + sqlserver 2008 + win7 64x
【发布时间】:2017-01-25 22:23:12
【问题描述】:

很抱歉,如果存在这种情况,但我在使用 codeigniter 3、php 5.6、sqlserver 2008 和 win7 64x 时遇到问题。 我按照各个站点(例如 Rob's Area)的步骤进行操作,还阅读了该站点中的几个问题,但仍然找不到答案。

使用 SQLSRV32.EXE 中的 php_pdo_sqlsrv_56_ts.dll 和 php_sqlsrv_56_ts.dll,我得到的错误是:

无法使用提供的设置连接到您的数据库服务器。 文件名:C:/xampp/htdocs/mycodeigniter/system/database/DB_driver.php 行号:436

然后下载了Rob的sqlsrv_unofficial_3.0.2.2.zip得到了这个错误:

消息:调用未定义的函数 sqlsrv_connect() 文件名:sqlsrv/sqlsrv_driver.php 行号:144

我在 Codeigniter 中的代码是:

$db['default'] = array(
'dsn'   => '',
'port'  => '1433',
'hostname' => '127.0.0.1',
'username' => 'myuser',
'password' => 'mypass',
'database' => 'mydb',
'dbdriver' => 'sqlsrv',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'autoinit' => TRUE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE

然后用了这个,这个有效,但是查询的时候不能调用结果。

 $db['default'] = array(
'dsn'   => 'Driver={SQL Server Native Client 10.0};Server=127.0.0.1;Database=mydb;',
'hostname' => '',
'username' => 'myuser',
'password' => 'mypass',
'database' => 'mydb',
'dbdriver' => 'sqlsrv',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE

请出主意?

【问题讨论】:

  • 显示什么错误?

标签: php sql-server codeigniter sql-server-2008


【解决方案1】:

获取 php_pdo_sqlsrv_56_ts.dll(afaik 当前的 sqlsrv 构建应该没问题,否则你必须采取 rob 构建)

然后在您的 db-config 中尝试以下操作

$db['default'] = array
(
    'dsn'   => 'sqlsrv:server=127.0.0.1,1433;Database=mydb',
    'username' => 'myuser',
    'password' => 'mypass',
    'dbdriver' => 'pdo',
    ...
);

1433 是当前端口 - 将其更改为您定义的端口 - 但我不确定您是否需要该端口

【讨论】:

  • 工作就像一个魅力!非常感谢!它使用 SQLSRV32.EXE dll 解决了。起初我遇到了 ODBC 错误,所以我必须为 SQL Server (msodbcsql.msi) 安装 ODBC Driver 11。
  • 哦,是的,忘了提一下,以防有人来寻找相同的解决方案:sintakonte 给出的答案是“172.0.0.1”,显然您需要将其更改为“127.0.0.1”或“localhost” " :)
猜你喜欢
  • 2018-07-20
  • 2015-07-07
  • 2015-01-23
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 2017-12-29
相关资源
最近更新 更多