php - 如何在 Codeigniter 中连接 mssql?
问题描述
我正在尝试将 codeigniter 与 MSSQL 连接起来。我php.ini
通过添加扩展名extension=php_sqlsrv_56_ts.dll
和extension=php_pdo_sqlsrv_56_ts.dll
. 但仍然面临如下 sqlsrv 错误,
错误:消息:sqlsrv_query() 期望参数 1 是资源,给定 null
sqlsrv_driver.php
function _execute($sql)
{
$sql = $this->_prep_query($sql);
return sqlsrv_query($this->conn_id, $sql, null, array(
'Scrollable' => SQLSRV_CURSOR_STATIC,
'SendStreamParamsAtExec' => true
));
}
$this->conn_id
---这是空的。我不知道为什么它得到空值。
Codeigniter 版本:2.2 /
PHP 版本:5.6
数据库配置:
$db['default']['hostname'] = '.\sqlexpress';
$db['default']['username'] = 'UNAME';
$db['default']['password'] = '';
$db['default']['database'] = 'DBNAME';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
注意:过去 3 天我一直被困在这个问题上,我已经尝试过了。由于我是 MSSQL 的新手,我无法找出问题所在。对此的任何帮助将不胜感激。提前致谢。
解决方案
您正在运行不受支持的 PHP 版本。您需要升级您的 PHP 版本才能继续接收安全更新。请参阅https://php.net/supported-versions.php。
这样做还可以让您访问更新版本的 sqlsrv 驱动程序。这很重要,因为您当前的驱动程序无法连接到较新版本的 SQL Server。
您已经声明您使用的是 SQL 2017。但是根据Microsoft PHP Drivers for SQL Server Support Matrix,使用 PHP 5.6 版您只能运行 sqlsrv 驱动程序的 3.2 版,而驱动程序的 3.2 版仅支持 SQL 2014 和以下。
推荐阅读
- wordpress - Woocommerce 如何格式化订单电子邮件中的帐单地址
- dart - Dart 编译器是否对任何带有下划线前缀的标识符强制执行隐私?
- python - Python RPM 包生成失败并出现“rpm:-ba:未知选项” - rpmbuild 可用
- http - 为什么 https 网站上会有 get http/1.1 数据包?
- angular - 使用 Amplify Interactions 为 React 或 Angular 启用语音
- java - 从字符串中提取整数
- c# - 在foreach中使用多个变量?
- sql - 从 CASE 表达式的主体内更改查询中访问的字段和表 [Oracle SQL]
- kubernetes - Kubernetes - 容器了解它计划的节点
- unity3d - Unity 新的输入系统和动画