2013-03-13 3 views
0

이것은 나에게 이상한 일이지만, 나는 이것이 일어난 문제이기를 바라고 있으며, 아직 온라인에서 해결책을 찾지 못했습니다.NULL을 반환하는 mssql_fetch_array를 사용하는 PHP

도움을 주신 데 대해 감사드립니다.

MS 2008 SQL 서버에서 저장 프로 시저를 호출하고 있습니다. SQL Server Management Studio를 사용하여이 절차가 올바르게 작동하는지 확인할 수 있습니다.

필자는 각 행을 잡고 print_r을 수행하는 기본 스크립트를 작성했습니다.

이제 이상한 부분입니다. NULL 항목 (단 하나의 열조차도)이있는 행의 경우, PHP는 그것을 얻지 못하고, 행은 빠져 있습니다. 모든 다른 것들은 괜찮습니다. 따라서 다시 돌아가 수동으로 NULL 항목을 변경하고 거기에 텍스트를 넣으면 표시됩니다.

기본적으로이 하나의 열에는 NULL이 허용되며, NULL 일 때는 해당 행에 대한 데이터가 현저하게 나오지 않습니다 (제외되었습니다). 그러나 당신이 들어가서 수동으로 무언가를 추가하면 아무런 문제가 나타나지 않습니다.

phpinfo에 따르면 내가 사용하는 커넥터는 무료 TDS입니다.

+0

PHP가 null 행에 대한 발명 된 가치를 제공하기를 원하십니까? 무엇을 인쇄 할 것으로 예상됩니까? –

+0

죄송합니다. 행이 null이 아니며 행에 값이 있습니다. 이 행의 열 중 하나만 null이고 그 때문에 아무것도 반환하지 않습니다. 그래서 내가 5 행을 가지고 있다고 가정 해 봅시다. 모든 행은 2 행을 제외하고는 하나의 열이 null입니다. PHP에서는 4 행만 반환됩니다. – user1399840

답변

0

나를 위해 그것을 고정 어떤이 : 나는이 첫 번째 질의했다

ON

설정 ANSI_NULL_DFLT_ON을 내 문제를 가지고 사람을 위해 할 수있는 저장 프로 시저

$result = mssql_query('set ANSI_NULL_DFLT_ON ON'); 

희망을 호출하기 전에이. 정말 실망 스럽습니다. PHP는 null 열이있는 행을 반환하므로 저장 프로 시저 내부의 비교 작업과 관련이 있습니다. 나는 그것이 NULL 값을 가질 수도있는 것을 비교할 때, PHP가 이것을 먼저 넘기지 않으면 PHP는 전체 행을 무시할 것이라고 생각합니다.