2015-02-18 4 views
1

Я использую sql-сервер 2012 и подключаюсь к php. когда я выполняю хранимую процедуру в студии управления sql, она работает нормально. но когда я вызываю хранимую процедуру в php, он возвращает пустое или нулевое значениеСохраненная процедура возвращает пустое или пустое значение в php

Я нашел причину. Я использую PRINT в этой хранимой процедуре. если я удалю эту печать в хранимой процедуре, она отлично работает в php. если я использую означает, что он получает пустое значение

Почему? и как получить результат из хранимой процедуры в PHP в этом случае (зр есть оператор печати)

хранимой процедуры?

CREATE PROCEDURE spname 
     @Id INT 
AS 
Begin 
    PRINT "some notes" 
    SELECT * FROM TABLE_NAME 
end 

Php код

$sp="EXEC spname @Id=20"; 
$query=$con->prepare($sp); 
$query->execute(); 
$result = $query->fetchAll(PDO::FETCH_ASSOC); 
print '<PRE>'; 
print_r($result); 
+0

Добавить SET NOCOUNT ON; после инструкции BEGIN и проверьте, помогает ли она вам. –

+0

@PareshJ Да, спасибо, я получил результаты. Но я не хочу изменять хранимую процедуру. Как я могу обработать это на стороне PHP? –

+0

Как вы сможете добавить SET NOCOUNT в свой PHP-код? Вы должны добавить это только в свой SP. –

ответ

0

Пожалуйста, попробуйте следующее:

$sp="SET NOCOUNT ON;EXEC spname @Id=20"; 
$query=$con->prepare($sp); 
$query->execute(); 
$result = $query->fetchAll(PDO::FETCH_ASSOC); 
print '<PRE>'; 
print_r($result); 
Смежные вопросы