php - 无法从 CodeIgniter 2.1.3 连接到本地 SQL Server Express 实例,我缺少什么?
问题描述
我将开始说,我尝试了几乎所有可以在 Internet 上找到的东西,包括以下列表:
- 通过 CodeIgniter 连接到 SQL Server
- Codeigniter:如何设置与 SQL 服务器的连接 (2008)
- CodeIgniter MSSQL 连接
- CI 连接到 SQL SERVER
我没试过什么?正如许多答案所说,使用 Microsoft SQL Server 扩展。
这是我的database.php
配置的样子:
$active_group = 'mssql_local';
$db['mssql_local']['hostname'] = 'localhost:1433'; // RNDPC\SQLEXPRESS:1433
$db['mssql_local']['username'] = 'ssUser';
$db['mssql_local']['password'] = '******';
$db['mssql_local']['database'] = 'ssDB';
$db['mssql_local']['dbdriver'] = 'mssql';
$db['mssql_local']['dbprefix'] = '';
$db['mssql_local']['pconnect'] = false;
$db['mssql_local']['db_debug'] = false;
$db['mssql_local']['cache_on'] = false;
$db['mssql_local']['cachedir'] = '';
$db['mssql_local']['char_set'] = 'utf8';
$db['mssql_local']['dbcollat'] = 'utf8_general_ci';
$db['mssql_local']['swap_pre'] = '';
$db['mssql_local']['autoinit'] = true;
$db['mssql_local']['stricton'] = false;
$db['mssql_local']['port'] = 1433;
但我一直在我的日志中看到以下“警告”:
错误 - 2019-03-20 10:18:31 --> 严重性:警告 --> mssql_connect():无法连接到服务器:localhost:1433,1433 /var/www/html/sseditor/codeigniter/2.1.3 /系统/数据库/驱动程序/mssql/mssql_driver.php 63
这是一个片段mssql_driver.php
:
56 function db_connect()
57 {
58 if ($this->port != '')
59 {
60 $this->hostname .= ','.$this->port;
61 }
62
63 return @mssql_connect($this->hostname, $this->username, $this->password);
64 }
这里有更好的主意吗?我用完了它们:|
解决方案
经过数小时的头痛后,我发现了问题/解决方案。我正要删除这个问题,但我更愿意回答自己,即使这对我的声誉造成了问题,但我很确定可以节省一些人的时间和精力。
首先,我完全忘记将这部分添加到 OP(为此道歉)apache 和 PHP 在 CentOS VM(Vagrant+VBox)中运行。
问题:运行 LAMP 环境的来宾对主机一无所知,这很有意义。
解决方法:将主机IP地址和NS添加到/etc/hosts
guest上的文件中。
190.168.56.1 RNDPC\SQLEXPRESS SQLEXPRESS
这解决了有关以下消息的问题:
无法连接到服务器:RNDPC\SQLEXPRESS:1433,1433
第二个问题与以下有关:
RNDPC\SQLEXPRESS:1433,1433
因为驱动程序如果port
指定了参数,则添加,port
.
解决方案:从定义中删除端口参数,并将端口“硬编码”到定义database.php
的末尾。host
现在我的database.php
样子:
$db['mssql_common']['hostname'] = 'RNDPC\SQLEXPRESS:1433';
$db['mssql_common']['username'] = 'ssUser';
$db['mssql_common']['password'] = '*****';
$db['mssql_common']['database'] = 'ssDB';
$db['mssql_common']['dbdriver'] = 'mssql';
$db['mssql_common']['dbprefix'] = '';
$db['mssql_common']['pconnect'] = false;
$db['mssql_common']['db_debug'] = false;
$db['mssql_common']['cache_on'] = false;
$db['mssql_common']['cachedir'] = '';
$db['mssql_common']['char_set'] = 'utf8';
$db['mssql_common']['dbcollat'] = 'utf8_general_ci';
$db['mssql_common']['swap_pre'] = '';
$db['mssql_common']['autoinit'] = true;
$db['mssql_common']['stricton'] = false;
希望这对将来的人有所帮助:)
推荐阅读
- html - 教程 5,新视角中的 cvc-elt.1
- r - 如何在带有 KNN 的 R 中使用 LOOCV?
- ruby - Rails 5:有没有办法针对开发数据库运行一组测试?
- ffmpeg - 带音频的 mlt 融化幻灯片不播放声音
- angular - 访问模型状态错误 - Asp.Net web api 身份 - Angular 6 - Http Post 请求
- spring - Spring Boot:禁用 JmsAutoConfiguration
- amazon-web-services - 如何在 jenkins 中使用作业导入插件
- django - 使用 django-haystack 的 Elasticsearch 自动运行更新索引
- php - php.ini 未在 Ubuntu 16.04.3 LTS 上重新加载
- html - 通过 HTML 方式调整大小的图像比通过 PhotoShop 更清晰