Я использую Codeigniter 3.1 и хочу получить результат от хранимой процедуры в Microsoft SQL Server. но я не могу получить никакого результата
Сценарий хранимой процедуры:
ALTER procedure [dbo].[SendPost_All_Periodic]
@DateAs nvarchar(10),
@DateTo nvarchar(10)
as
beginDECLARE @temptable TABLE (MsgDate nvarchar(10),Saat tinyint)
INSERT INTO @temptable
SELECT MsgDate,CAST(LEFT(MsgTime, 2) AS int) as Saat2
FROM dbo.TMessage
Where MsgDate>=@DateAs and MsgDate<=@DateTo
Select Saat,count(Saat)as CountSend from @temptable
group by Saat
order by Saat
end
Мой код PHP:
$DateAs = "2017/01/02";
$DateTo = "2017/01/03";
$result = $this->db->query("SendPost_All_Periodic '{$DateAs}', '{$DateTo}'");
print_r($publishtime->result_array());
Но когда я использую этот метод для обычного выбора, этот код создает результат, но я не могу получить результат, чем выбрать из TempTable
Получаете ли вы какие-либо сообщения об ошибках при попытке выполнить свой код?
Исходя из предоставленного вами кода, у вас может возникнуть несколько проблем, и вызов может зависеть от того, какой драйвер базы данных вы используете в своей конфигурации (например, pdo). Во-первых, в вашем print_r
утверждение, вы вызываете переменную, которая, казалось бы, не существует. Итак, давайте попробуем:
print_r($result->result_array());
Кроме того, способ передачи параметров может вызвать проблемы (одинарные кавычки). Дайте им обоим попробовать и посмотреть, что работает.
Способ первый:
$result = $this->db->query("SendPost_All_Periodic {$DateAs}, {$DateTo}");
print_r($result->result_array());
Способ второй:
$result = $this->db->query("EXEC SendPost_All_Periodic @DateAs='$DateAs', @DateTo='$DateTo'");
print_r($result->result_array());
Надеюсь, это поможет. Если так, дайте мне знать, какой из них работает. Если нет, посмотрите, указывает ли эта статья Stackoverflow правильное направление: Как вызвать хранимую процедуру в CodeIgniter?
Других решений пока нет …