문제

PHP 및 MS 액세스 데이터베이스를 사용하여 PC 설정에 구축 된 작업을 수행하고 있습니다. 앱을 MAMP 환경으로 포트하면

Fatal error: Call to undefined function odbc_connect() in /path/to/index.php on line 37

37 행은 다음과 같습니다.

return odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=myfile.mdb",
"ADODB.Connection", "", "SQL_CUR_USE_ODBC");

ODBC가 MAMP 버전의 PHP (5)에 컴파일되지 않은 것 같습니다. 또한 PDO를 사용해 보았고 비슷한 오류가 발생했습니다.

누구 든지이 문제를 해결하는 방법을 알고 있습니까?

도움이 되었습니까?

해결책

같은 ODBC 드라이버를 추가해야합니다 실제 ODBC 컴퓨터에, PHP 버전에 ODBC 기능이 준수 된 경우, 그렇지 않은 경우 적절한 지원으로 다른 버전을 설치해야합니다. 나는 사용하는 데 행운을 빕니다 맥 포트 PHP를 설치하려면. 그러나 여전히 이러한 기능에 대해 래퍼를 작성해야한다고 기대할 수있는 일부 기능이 여전히 누락되어 있습니다.

  if(!function_exists("odbc_fetch_array"))
  {
    function odbc_fetch_array($aResult,$anAssoc=false)
    {
        # Out of rows? Pass back false!
        if(!odbc_fetch_row($aResult)) return false;

        $theRow = array();

          # Build up array
        $theNumFields = odbc_num_fields($aResult);
        $theLimit = $theNumFields+1;
          for($i=1; $i<$theLimit; $i++)
          {
            # WARNING: Starts our index at 0, unlike standard ODBC which starts at 1
              $theRow[odbc_field_name($aResult, $i)] = odbc_result($aResult, $i);
              if(!$anAssoc) $theRow[$i-1] = $theRow[odbc_field_name($aResult, $i)];
        }
        return $theRow;
    }
  }

  if(!function_exists("odbc_fetch_assoc"))
  {
    function odbc_fetch_assoc($aResult)
    {   
        if (DIRECTORY_SEPARATOR == '/') // call local function on MACs
        {
            return odbc_fetch_array($aResult,true);
        }
        else // call built in function on Windows
        {
            return odbc_fetch_array($aResult);
        }
    }
  }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top