如何在Codeigniter中连接mssql?

时间:2020-06-15 12:43:30

标签: php database codeigniter sqlsrv

我正在尝试将Codeigniter与MSSQL连接。通过添加扩展名php.iniextension=php_sqlsrv_56_ts.dll,我对extension=php_pdo_sqlsrv_56_ts.dll文件进行了所有可能的更改。但仍然面临如下sqlsrv错误,

错误:消息:sqlsrv_query()期望参数1为资源,给定为空

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的新手,所以我无法找出问题所在。在这方面的任何帮助将不胜感激。预先感谢。

enter image description here

1 个答案:

答案 0 :(得分:0)

您正在运行不受支持的PHP版本。您需要升级PHP版本才能继续接收安全更新。参见https://php.net/supported-versions.php

执行此操作还将使您可以访问较新版本的sqlsrv驱动程序。这很重要,因为您当前的驱动程序无法连接到SQL Server的较新版本。

您已声明正在使用SQL2017。但是根据Microsoft PHP Drivers for SQL Server Support Matrix,对于PHP 5.6版,您只能运行3.2版的sqlsrv驱动程序,而3.2版的驱动程序仅支持SQL 2014和在下面。