Unable to Connect SQL server with Codeigniter - php

I Developed Codeigniter app with SQL server connection. it is properly connected when using PHP 5.6 on windows 7 PC, but same application not working on windows 10 with same PHP version. showing the error
$db['default'] = array(
'dsn' => '',
'hostname' => '192.168.0.241',
'username' => 'sa',
'password' => 'mypw',
'database' => 'dbsrver',
'dbdriver' => 'sqlsrv',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

You might have some error in configuration. Make sure you have correctly configure database.
In application/config/databse.php
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'write password if any otherwise leave it empty',
'database' => 'Your_Database_Name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

Related

codeigniter how to connect second database based on dynamic values

I want to import data from other database with dynamic connection
in codeigniter user input the database credential in the form and than I want to connect that database and import some data in the primary database. the question is how to set the second database connection with the dynamic values.
this is your first db connection from application/config/database.php
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'first_db',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
and this is second db connection function from model or controller or helper your choice.
private function second_db(){
return $db['second'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'second_db',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
}
private function first_db(){
return $db['second'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'first_db',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
}
if you set up your settings then you can switch your database with this code
$this->load->database(first_db(), TRUE);
$this->load->database(second_db(), TRUE);

is there a way of creating a connection between codeigniter 3 and sql server using php version 7.2

what is way i can use to create a connection between codeigniter and sql server?
below is the way i was connecting but it seems not to work
$active_group = 'default'; $query_builder = TRUE; $db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'port' => '1433',
'username' => 'username',
'password' => '*****',
'database' => 'database_name',
'dbdriver' => 'mssql',
'dbprefix' => '',
'pconnect' => FALSE,
// 'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
the connection is not established and i cant figure out what is the problem
$active_group = 'default'; $query_builder = TRUE; $db['default'] = array(
'dsn' => '',
'hostname' => 'computer_name\SQLEXPRESS',
'port' => '1433',
'username' => 'username',
'password' => '*****',
'database' => 'database_name',
'dbdriver' => 'sqlsrv',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
First i needed to install the sql server php driver on my computer
installing the extension. download driver then extract then copy php_pdo_sqlsrv_72_nts_x64.dll, php_pdo_sqlsrv_72_ts_x64.dll, php_sqlsrv_72_nts_x64.dll, php_sqlsrv_72_ts_x64.dll to the /php/ext. then add these extension=php_pdo_sqlsrv_72_nts_x64.dll extension=php_pdo_sqlsrv_72_ts_x64.dll extension=php_sqlsrv_72_nts_x64.dll extension=php_sqlsrv_72_ts_x64.dll in /php/php.ini. restart apache

CodeIgniter on App Engine time out whe concting to MySQL

I am hosting a CodeIgniter API on GCP App Engine and I cant connect to the GCP Cloud SQL. I create the instance and database, but when I try to conect via CI I got a timeout message
error screen
My databse config on CI is:
$db['default'] = array(
'dsn' => 'mysql:unix_socket=/instance_name/instancia;dbname=project_name',
'hostname' => 'http://00.000.00.00',//here i put the public ip from the sql instance
'username' => 'user',
'password' => 'passwd',
'database' => 'projeto',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => yes,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
I've been banging my head on this for a while, myself, and finally cracked it! Here's what my db config looks like:
$db['default'] = array(
'dsn' => '',
'hostname' => '/cloudsql/PROJECT-NAME:REGION:DATABASE',
'username' => 'USERNAME',
'password' => 'PASSWORD',
'database' => 'DATABASE_NAME',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
// 'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
The important bits are that the dsn is empty and the hostname is the full path to the unix socket. The rest of it should be about the same.
Hope that helps you, too!

configuration MSSQL with PHP 5.6.x(xamp) using code-igniter

I have an issue while configuration MSSQL DATABASE with my codeigniter. I have placed these below file in xamp/php/ext:
php_pdo_sqlsrv_56_ts.dll
php_sqlsrv_56_ts.dll
php_sqlsrv_56_nts.dll
php_pdo_sqlsrv_56_nts.dll
I have also ensured to extended dll files in php.ini(I have tested both ts and nts separately)
Below is my database file in codeigniter
$db['default'] = array(
'dsn' => '',
'hostname' => 'tcp:xyz.database.windows.net',
'username' => '****',
'password' => '****',
'database' => '****',
'dbdriver' => 'sqlsrv', // i have use also mssql
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
ERROR
Unable to connect to your database server using the provided settings.
Filename: C:/xampp/htdocs/sqlsrv/system/database/DB_driver.php
Line Number: 436
I am using PHP Version 5.6.14 in XAMP .
imho you should use a dsn for this - since you also installed the pdo driver you can try the following (1433 is the port - i don't know yours):
$db['default'] = array(
'dsn' => 'sqlsrv:server=xyz.database.windows.net,1433;Database=****',
'hostname' => '',
'username' => '****',
'password' => '****',
'dbdriver' => 'pdo', // i have use also mssql
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

How to connect more than two databases in codeigniter

I want connect to 3 databases. I don't have any problem if i connect just two databases. When i try to connect 3 databases. i have problem like i cant connect to database two.
this my config at database.php :
$db['default'] = array(
'dsn' => '',
'hostname' => '192.168.11.29,1433',
'username' => 'userhsp',
'password' => 'hsp432#',
'database' => 'HSP',
'dbdriver' => 'mssql',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => FALSE,
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
$db['crm'] = array(
'dsn' => '',
'hostname' => '192.168.11.29,1433',
'username' => 'userhsp',
'password' => 'hsp432#',
'database' => 'CRM',
'dbdriver' => 'mssql',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => FALSE,
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
$db['pltapol'] = array(
'dsn' => '',
'hostname' => '192.168.11.29,1433',
'username' => 'userhsp',
'password' => 'hsp432#',
'database' => 'pltapol',
'dbdriver' => 'mssql',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => FALSE,
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
and in my model like this :
private $db2;
private $db3;
public function __construct()
{
parent::__construct();
$this->db2 = $this->load->database('crm', TRUE);
$this->db3 = $this->load->database('pltapol', TRUE);
}
i just can get object from database pltapol, but i dont get object from crm. how to fix it?
I want to answer my question. i tried to use
$this->db2->db_select() or $this->db3->db_select()
if i want to use that connection before $this->db2->query() or before $this->db2->query()
that is work!
happy coding :)

Categories