2011-05-06 2 views
1

모든 데이터를 반환하지 않습니다 비록 내가 사용할 필요가있는 많은 데이터를 반환한다. 그것은 null 값을 가진 일부 필드를 포함하고 다른 것은 완전히 채워집니다 (전체 행이 null이 아닌 일부 필드 만 사용). 우분투 10.10 시스템에서 PDO와 PHP를 사용하여 getReport 메소드를 사용하고 있습니다. :PHP PDO 내가 이런 식으로 호출되는 저장 프로 시저를 주어 졌어

$this->connection = new PDO(
     "dblib:host=IP:PORT;dbname=DBNAME", 
     "LOGIN", 
     "PASS" 
    ); 

방법은 널 (null) 필드를 포함하는 행없이 데이터를 포함하는 배열, 누군가가 이유를 알고 반환 :

public function getReport($empresa1, $empresa2, $num) { 
    $ds = $this->connection->prepare('SP_REPORT_HOME ?,?,?'); 
    $ds->bindParam(1, $empresa1, PDO::PARAM_STR, 4); 
    $ds->bindParam(2, $empresa2, PDO::PARAM_STR, 4); 
    $ds->bindParam(3, $num, PDO::PARAM_INT, 4); 
    $ds->execute(); 
    return $ds->fetchAll(); 
} 

$ this-은> 연결은 다음과 같이 생성 단지 PDO 인스턴스이다 이 행을 표시하지 않습니까? 나는 정말로 그들을 필요로한다. PHP5.3 및 SQLServer 2008을 사용 중입니다.

답변

0

글쎄, 결국 정말 이상한 일이지만, 절차에 오류가 발생했습니다.

절차 중 하나에서 임시 테이블을 만들고 원하는 데이터를 삽입합니다. 우리가 여기서 사용하는 다른 시스템에서는 (java로 빌드 됨) 프로 시저가 제대로 작동하고 오류가없고 모든 데이터가 있습니다. SQL Server Management Studio에서도 쿼리 오류가 발생하지 않습니다.

php에서는 null 필드가없는 테이블을 생성하기 때문에 삽입이 실패하지만 (그렇게하지는 않더라도). 이 연결 및 쿼리를 사용하여 mssql 방법을 찾으십시오. $ connection-> query() 호출에서 null이 아닌 필드에 null을 삽입하려고했는데 삽입 오류가 발생했습니다. 스크립트를 멈추지 않았다. null 필드가있는 행이없는 결과가 나타납니다. pdo 버전은 아마도 같은 문제가 있었지만 오류 메시지는 표시하지 않았습니다.

글쎄, 테이블 생성이 null 필드를 나타내도록 프로 시저를 변경했지만 다른 시스템에서 모두 작동하는 이유와 PHP에서이 필드에 다른 기본값을 사용했는지에 대한 단서가 없습니다 ...