MAMP 환경에 ODBC 드라이버를 추가하려면 어떻게합니까?
문제
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);
}
}
}
제휴하지 않습니다 StackOverflow