Проблемы при выполнении хранимой процедуры с Codeigniter - PullRequest
1 голос
/ 29 июня 2019

Я использую Codeigniter версии 3.1.10 и использую SQLSRV в качестве драйвера базы данных.

Я пытался выполнить хранимую процедуру с помощью Codeigniter. Запрос моей хранимой процедуры:

    $sp = "SP_AffniGetReports  @startdate=?,@enddate=?,@interval=?,@device_id=?,@limit=?,@offset=?";
    $params = array($from_date,$to_date,$rpt_time_interval,$meter_id,$offset,$limit);
    $result = $this->db->query($sp,$params,false);
    $result = $this -> db -> get();

Получение этой ошибки

[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Must specify table to select from.

SELECT *

после проверки вышеуказанной ошибки я напечатал запрос хранимой процедуры, сгенерированный Codeigniter, и получил

SP_AffniGetReports @startdate='2019-06-21 12:00:01',@enddate='2019-06-27 11:05:59',@interval='60',@device_id='101',@limit=0,@offset='30'

в качестве скомпилированного запроса!

Я перепробовал все модификациинапример, использование «EXEC», «CALL» в запросе и ссылок за последние 2 дня.Но я не могу выполнить хранимую процедуру.

Теперь я попытался выполнить тот же запрос с обычным PHP-скриптом, используя SQLSRV, хранимая процедура выполнена.Мой PHP-скрипт

$procedure_params = array('2019-06-10 00:00:01','2019-06-27 00:00:59','1','101','0','30');
$sql = "EXEC SP_AffniGetReports @startdate=?,@enddate=?,@interval=?,@device_id=?,@limit=?,@offset=?";
$stmt = sqlsrv_prepare($conn, $sql, $procedure_params);

И я получил результат!Но я не могу найти проблему с хранимой процедурой Codeigniter

1 Ответ

0 голосов
/ 01 июля 2019

Нашел, почему эта проблема произошла, моя синтаксическая ошибка Код должен быть

$query = $this->db->query($sp,$params,false);
$result = $query->result();

Используя $ result = $ this -> db -> get (); Codeigniter пытается создать новый запрос вместе с хранимой процедурой. Это причина моей проблемы.

...