【发布时间】:2020-10-04 21:06:35
【问题描述】:
我正在尝试将 codeigniter 与 MSSQL 连接起来。我通过添加扩展名extension=php_sqlsrv_56_ts.dll 和extension=php_pdo_sqlsrv_56_ts.dll 对php.ini 文件进行了所有可能的更改。但仍然面临如下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 的新手,我无法找出问题所在。对此的任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
请说明您如何定义和填充
$this->conn_id。要么您没有为此分配值,要么它为空,因为您的数据库连接代码失败。对您的问题重要的是代码,而不是执行特定查询的代码。 -
你使用的是什么版本的mssql原生客户端?
-
P.S.你在什么操作系统下运行 PHP? sqlsrv 驱动程序仅适用于 Windows。如果您的 PHP 在 Linux/Mac 上运行,则需要使用 ODBC。
-
@Ashishrawat 2017
-
@ADyson 你是对的。将 db_debug 启用为 TRUE 后,出现错误“无法连接到数据库”。我正在使用 Windows 和 XAMPP
标签: php database codeigniter sqlsrv