php – 在Xampp中连接sqlsrv

我已经安装了Xampp并安装了CodeIgniter.我想从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');
}

我有以下错误:

Fatal error: Call to undefined function sqlsrv_connect() in
C:\xampp\htdocs\system\database\drivers\sqlsrv\sqlsrv_driver.php on
line 76

我在论坛上看到我必须从sqlsrv_driver.php更改第89行:

function db_pconnect()
{
    // $this->db_connect(TRUE); original
    return $this->db_connect(TRUE);
}

我错了什么?

解决方法:

编辑-
首先,您需要下载驱动程序
http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx

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

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

php_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_nts_vc9.dll

2)如果你有php5ts.dll然后将以下文件移动到xampp / php / ext目录.

php_sqlsrv_53_ts_vc9.dll
php_pdo_sqlsrv_53_ts_vc9.dll

如果您的PHP版本是使用Visual C 9.0编译的,则应使用上述文件.否则应使用以下文件.

1)如果你有php.dll然后将以下文件移动到xampp / php / ext目录.

php_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc6.dll

2)如果你有php5ts.dll然后将以下文件移动到xampp / php / ext目录.

php_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc6.dll

现在我们必须加载最近添加的文件.打开php ini文件并在动态扩展区域中添加条目,如下所示.

extension=php_sqlsrv_53_nts_vc9.dll
extension= php_pdo_sqlsrv_53_nts_vc9 .dll 

保存ini文件并重新启动XAMPP

$check= @$CI->load->database($config, TRUE); // ommit the error
if ($check->call_function('error') !== 0) {
    // Failed to connect
}

我不确定你要做什么但是在codeigniter你不需要初始化数据库,CI自动为你做

所以-

$this->load->database();

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

这不是必需的.

您只需加载模型并在模型开始执行查询.
$这 – &GT负载&GT数据库();
在控制器中,您需要加载模型,如 –

$this->load->model('my_model');

然后调用您编写查询的模型函数.

$this->my_model->myfunction(); 
上一篇:如何通过网络访问mysql?


下一篇:什么是经常出现的解决方案#126 – 表’/tmp/#sql_4a05_0.MYI’的密钥文件不正确;尝试在mysql中修复它?