我已经安装了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();
这不是必需的.
您只需加载模型并在模型开始执行查询.
$这 – >负载>数据库();
在控制器中,您需要加载模型,如 –
$this->load->model('my_model');
然后调用您编写查询的模型函数.
$this->my_model->myfunction();