odbc_exec을 사용하여 로컬 DB (SQL Server 2016)에서 저장 프로 시저를 실행하고 레코드를 결과로 반환 할 것으로 예상합니다. 그러나 결과 필드 이름 (odbc_field_name)은 모두 비어 있습니다.PHP : odbc_exec 쿼리의 필드 이름이 비어 있습니다.
레코드의 값이 정확합니다. 그리고 SSMS에서 쿼리를 실행하면 결과가 잘 보입니다. 다음은 샘플 코드입니다.
PHP :
$connection = odbc_connect("Driver={SQL Server Native Client 11.0};Server=$myServer;Database=$myDB;", $myUser, $myPass) or die("Couldn't connect to SQL Server on $myServer");
$query = "dbo.[TestSP]";
$result = odbc_exec($connection,$query) or die(odbc_error($connection));
$counter = 0;
while($counter < odbc_num_fields($result))
{
$counter = $counter + 1;
$test_str.= odbc_field_name($result,$counter)."\n";
}
$file = 'log.txt';
$current = file_get_contents($file);
$current .= $test_str;
file_put_contents($file, $current);
SQL : 어떤 제안이 5.4에서 7.0으로 PHP를 업그레이드 한 후
이
그것은 작동 업데이트 이해할 수있을 것이다
CREATE PROC [dbo].[TestSP] AS
BEGIN
SET NOCOUNT ON;
SELECT '1' as first_column, '2' as second_column
END
. 아직도 그것이 일어나는 이유를 모르겠다 ... 나는 PHP 설정을 나중에 비교할 것이고 내가 무엇인지 식별한다면 그것을 업데이트 할 것이다. 모든 도움을 주셔서 감사합니다.
특정 SQL을 붙여 넣으면 도움이 될 것이라고 생각합니다. – yakobom
@yakobom 제안에 감사드립니다. 그냥 –
추가 5.4에서 7.0으로 PHP를 업그레이드 한 후에 작동합니다. 나는 왜 그런 일이 일어나는 지 아직 확신하지 못하고있다. 나중에 세부 사항을 추적 할 시간이 있기를 바랍니다. 모든 도움 주셔서 감사합니다. –