Как сделать sqlsrv_query в модели? Как вызвать соединение с базой данных внутри модели?

Привет, я использую Codeigniter с MSSQL, я подключил базу данных и ее работу, и мне нужно использовать строку подключения в контроллере модели. Вот код ниже, который я дал в базе данных .php файл

для тестирования я дал запрос в этом файле сам, и он работает

$db['default']['hostname'] = "Admin\SQLEXPRESS"; // or put the IP of your SQL Server Instance
$db['default']['port'] = 1433; // or the port you configured on step 6
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = 'db_name';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE; // Pay attention to this, codeigniter makes true for default
$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;

$serverName = $db['default']['hostname']; //serverName\instanceName

// Since UID and PWD are not specified in the $connectionInfo array,
// The connection will be attempted using Windows Authentication.
$connectionInfo = array( 'Database' => $db['default']['database']);
$conn = sqlsrv_connect( $serverName, $connectionInfo );

if ($conn)
{
$sql="SELECT * from dbo.LAYER";
$stmt = sqlsrv_query($conn,$sql);

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) )
{
$result_array[] = $row;
}
print("<pre>");
print_r($result_array);
exit;}
else
{
echo "Connection could not be established.<br />";
die ( print_r( sqlsrv_errors(), true));
}

и в модели я попробовал это, но это не работает

class welcome_m extends CI_Model{

function __construct()
{
parent::__construct();
$this->load->database('default',true);
}
function welcome_check()
{
$sql="SELECT * from dbo.LAYER";
$stmt = $this->db->sqlsrv_query($sql);
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) )
{
$result_array[] = $row;
}
print("<pre>");
print_r($result_array);
exit;
}

Это файл модели. Как вызвать соединение с базой данных внутри модели
Спасибо

0

Решение

Я смотрю на Codeigniter В документации сказано, что при загрузке базы данных это будет что-то вроде … но не стоит принижать меня за попытку !:

protected $MyMSSQL;

function __construct()
{
parent::__construct();
$this->MyMSSQL = $this->load->database('default',true);
}

function welcome_check()
{
$db    =    $this->MyMSSQL;
$stmt  =    $db->query("SELECT * from dbo.LAYER");
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
$result_array[] = $row;
}

print("<pre>");
print_r($result_array);
exit;
}
1

Другие решения

После долгих раздумий я смог подключить SQL Server в своем коде (модели), ниже приведен мой файл базы данных и пример функции в модели:

Я ставлю образец функции из моих моделей:

public function getCommandFields($name)
{
// Load Sql Server Connection

$this->sqlsrvr = $this->load->database('test', true);

$qry ="select  SPECIFIC_NAME, ORDINAL_POSITION, PARAMETER_NAME, DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH,PARAMETER_MODE
FROM INFORMATION_SCHEMA.Parameters
WHERE SPECIFIC_NAME  ='".$name."'";$query = $this->sqlsrvr->query($qry);
$fields = array();
foreach ($query->result_array() as $row)
{
$fields[]=  $row;
}

return $fields;

}

ФАЙЛ БАЗЫ ДАННЫХ

$db['test']['hostname'] = "192.168.12.123";
$db['test']['username'] = "sa";
$db['test']['password'] = "password";
$db['test']['database'] = "Hospital";
$db['test']['dbdriver'] = "sqlsrv";
$db['test']['dbprefix'] = "";
$db['test']['pconnect'] = FALSE;
$db['test']['db_debug'] = FALSE;
$db['test']['cache_on'] = FALSE;
$db['test']['cachedir'] = "";
$db['test']['char_set'] = "utf8";
$db['test']['dbcollat'] = "utf8_general_ci";
$db['test']['swap_pre'] = "";
$db['test']['autoinit'] = TRUE;
$db['test']['stricton'] = FALSE;
0

По вопросам рекламы [email protected]