Я не могу получить записи из хранимой процедуры. Если я запускаю с SQL Server, я получаю записи. Если я назову его из .NET, у меня появятся записи ... но если я его вызову из PHP, я не получу записи.Я не могу получить записи из хранимой процедуры
Я использую PHP 5.3.3 на CentOS 6. Я использую mssql. Все остальные SP в порядке.
Я попытался
$provider = 1010;
$array = array();
$stmt2 = mssql_init("[dbo].[PORA_sp_GET_LetterGenerationRecords]");
mssql_bind($stmt2, "@ProviderID", $provider, SQLINT4);
$letters = mssql_execute($stmt2);
while($row = mssql_fetch_assoc($letters)){
$array[] = $row;
}
mssql_free_statement($stmt2);
echo '<pre>'; print_r($array); echo '</pre>';
и я
Array
(
)
Я попытался слишком
$array = array();
$letters = mssql_query('EXEC [dbo].[PORA_sp_GET_LetterGenerationRecords] @ProviderID = 1010');
while($row = mssql_fetch_assoc($letters)){
$array[] = $row;
}
echo '<pre>'; print_r($array); echo '</pre>';
и я получил
Array
(
)
Я включил
echo 'MSSQL error: '. mssql_get_last_message();
и ответ:
MSSQL error:
я очень любопытный. Прямо сейчас я запускаю SP шаг за шагом из PHP. Это позорно.
Я пробовал:
$provider = 1010;
$array = array();
// $letters = mssql_query('EXEC [dbo].[PORA_sp_GET_LetterGenerationRecords] @ProviderID = 1010');
$stmt2 = mssql_init("[dbo].[PORA_sp_GET_LetterGenerationRecords]");
mssql_bind($stmt2, "@ProviderID", $provider, SQLINT4);
$letters = mssql_execute($stmt2);
if($letters){
echo mssql_num_rows($letters);
while($row = mssql_fetch_assoc($letters)){
$array[] = $row;
}
mssql_free_statement($stmt2);
echo '<pre>'; print_r($array); echo '</pre>';
}
else{
echo 'MSSQL error: '. mssql_get_last_message();
echo error_get_last();
}
и тот же ответ.
Итак, если вы выполняете 'SELECT * FROM any' в PHP с использованием того же кода, он возвращает набор результатов? – OGHaza
Когда я запускаю все в PHP, запустите нормально. Этот SP сложный, поскольку он берет данные из некоторых таблиц и создает временную таблицу с данными. – norgematos
И просто для уточнения, если вы выполняете 'EXEC [dbo]. [PORA_sp_GET_LetterGenerationRecords] @ProviderID = 1010' в студии управления или что-то еще, она работает нормально? (вместо выполнения кода в процедуре) – OGHaza