我正在尝试将Codeigniter与MSSQL连接。通过添加扩展名php.ini
和extension=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的新手,所以我无法找出问题所在。在这方面的任何帮助将不胜感激。预先感谢。
答案 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和在下面。