Php 在Xampp中连接sqlsrv

Php 在Xampp中连接sqlsrv,php,sql,codeigniter,xampp,Php,Sql,Codeigniter,Xampp,我已经安装了带有CodeIgniter安装的Xampp。我想从CodeIgniter连接到SQL数据库 我更改了数据库配置文件,并将dbdriver设置为sqlsrv $active_group = 'default'; $active_record = TRUE; $db['default']['hostname'] = 'IP Adress; $db['default']['username'] = 'DBUserName'; $db['default']['password'] = 'D

我已经安装了带有CodeIgniter安装的Xampp。我想从CodeIgniter连接到SQL数据库

我更改了数据库配置文件,并将dbdriver设置为sqlsrv

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'IP Adress;
$db['default']['username'] = 'DBUserName';
$db['default']['password'] = 'DBPassword';
$db['default']['database'] = 'DBName';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$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;
在我的控制器中,我有以下代码来尝试连接:

$this->load->database();

$db_obj = $this->db->load('sql_Test',TRUE);
$connected = $db_obj->initialize();

if (!$connected){
    $db_obj = $this->d->load('yyy',TRUE);
} 
else{
    die('connected');
}
我有以下错误:

致命错误:在中调用未定义的函数sqlsrv_connect() C:\xampp\htdocs\system\database\drivers\sqlsrv\sqlsrv\u driver.php on 第76行

我在一个论坛上读到,我必须更改sqlsrv_driver.php的第89行:

function db_pconnect()
{
    // $this->db_connect(TRUE); original
    return $this->db_connect(TRUE);
}
我做错了什么?

编辑- 首先,您需要下载驱动程序

现在转到XAMPP安装并搜索php.dll 它将显示您拥有的正确的PHP dll

1) 将以下文件移动到xampp/php/ext目录

php_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc9.dll
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc6.dll
2) 如果您有php5ts.dll,则将以下文件移动到xampp/php/ext目录

php_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc9.dll
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc6.dll
如果PHP版本是用Visual C++ 9编译的,则应该使用以上文件。否则应使用以下文件

1) 如果您有php.dll,那么将以下文件移动到xampp/php/ext目录

php_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc9.dll
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc6.dll
2) 如果您有php5ts.dll,则将以下文件移动到xampp/php/ext目录

php_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc9.dll
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc6.dll
现在我们必须加载最近添加的文件。打开PHPINI文件并在动态扩展区域中添加条目,如下所示

extension=php_sqlsrv_53_nts_vc9.dll
extension= php_pdo_sqlsrv_53_nts_vc9 .dll 
保存ini文件并重新启动XAMPP



我不知道你们想做什么,但在codeigniter中你们不需要初始化数据库,CI会自动为你们做

所以-

这是不必要的

您只需要加载模型,然后在模型中开始执行查询。 $this->load->database(); 在控制器中,您需要像这样加载模型-

$this->load->model('my_model');
然后调用编写查询的模型函数

$this->my_model->myfunction(); 

您的XAMPP安装程序不支持sqlsrv。 您需要在
php.ini
中启用它

extension=php_sqlsrv.dll
extension=php_pdo_sqlsrv.dll

XAMPP不是和MySQL一起提供的吗?SQLSRV是错误的,您需要“mysql”。好吧,但必须连接SQL数据库哦,我现在明白您的意思了。检查我的答案。是的,但我想在编写查询之前尝试连接。我制作了一个模型,也编写了一个查询,但我得到了相同的错误。@MartenB检查我编辑了我的答案,我希望是这样helps@MartenB好的,现在我明白了,为了连接到sqlsrv。。您需要首先在XAMPP中定义它。等等,我会编辑我的答案谢谢你的解释。重新启动Xamp时出现以下错误:无法加载动态库php_sqlsrv_53_nts_vc9.dll。此dll不包含我从网站下载的文件。我在重新启动Xampp时出现以下错误:无法加载动态库php\u sqlsrv\u 53\u nts\u vc9.dll。此dll不包含我从网站()下载的文件。