Я установил 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'); }
У меня есть следующая ошибка:
Неустранимая ошибка: вызов неопределенной функции sqlsrv_connect () в C: \ xampp \ htdocs \ system \ database \ drivers \ sqlsrv \ sqlsrv_driver.php в строке 76
Я прочитал на форуме, что мне нужно изменить строку 89 из sqlsrv_driver.php:
function db_pconnect() { // $this->db_connect(TRUE); original return $this->db_connect(TRUE); }
Что я не так?
EDIT. Сначала вам нужно загрузить драйвер http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx
Теперь перейдите к установке XAMPP и найдите php.dll. Будет отображаться корректная PHP-библиотека.
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 }
Я не знаю точно, что вы пытаетесь сделать, но в кодеригенере вам не нужно инициализировать базу данных, CI автоматически сделает это за вас
так-
$this->load->database(); $db_obj = $this->db->load('SQL_Test',TRUE); $connected = $db_obj->initialize();
это не нужно.
Вам просто нужно загрузить модель и начать работу с запросами модели. $ This-> load-> базы данных (); В контроллере вам необходимо загрузить модель,
$this->load->model('my_model');
затем вызовите функцию модели, в которой вы написали запросы.
$this->my_model->myfunction();
У вашей настройки XAMPP нет поддержки sqlsrv. Вам нужно включить его в php.ini
.
extension=php_sqlsrv.dll extension=php_pdo_sqlsrv.dll