Включение расширения pdo_odbc для PHP на Mac OSX

Я пытаюсь включить расширение pdo_odbc для PHP на моем Mac с PHP 5.3 Вот что я сделал, чтобы заставить его работать:

  1. Я установил UnixODBC с помощью варить

    $ варить установить unixodbc
    
  2. Скачал исходники для PHP 5.3.8. В терминале я перешел в папку pdo_odbc. Потом сделал следующее.

    $ phpize
    $ ./configure --with-pdo-odbc=unixODBC
    $ сделать
    

    Произошла ошибка.

    /Users/todd/Downloads/php-5.3.8/ext/pdo_odbc/pdo_odbc.c:43: ошибка: «ZEND_MOD_END» здесь не объявлена ​​(не в функции)
    /Users/todd/Downloads/php-5.3.8/ext/pdo_odbc/pdo_odbc.c: В функции «zm_startup_pdo_odbc»:
    /Users/todd/Downloads/php-5.3.8/ext/pdo_odbc/pdo_odbc.c:135: предупреждение: приведение к указателю из целого числа другого размера
    

    На основании некоторых блогов я заменил ZEND_MOD_ENDна {NULL,NUll, NULL}и снова запустил make. На этот раз оно подчинилось.

  3. Затем я запустил «sudo make install». и что установил расширение в нужное место. Я изменил php.ini, чтобы включить его. И это отображается в phpInfo()

Пока все хорошо. Но когда я запускаю простые тесты, я получаю ошибки о каждой второй попытке

php(20048,0x7fff796f1960) malloc: *** mmap(size=2977160837258543104) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
terminate called throwing an exceptionAbort trap: 6

Это было выдано, когда я пытался выполнить этот код:

<?php

   $dsn = 'odbc:Driver={FileMaker ODBC};Server=localhost;Database=CalDAV;';
   $pdo = new PDO($dsn, "odbc", "odbc");

   $sql = "SELECT * From Users Where id = 2";
   $r = $pdo->query($sql);
   print_r($r->fetch(PDO::FETCH_ASSOC));

   $sql = "SELECT * From Users Where id = ?";
   $stmt = $pdo->prepare($sql);
   $stmt->execute(array(2));
   print_r($stmt->fetch(PDO::FETCH_ASSOC));

?>

эта строка вызывает исключение.

$stmt->execute(array(2));

У кого-нибудь есть опыт заставить pdo_odbc работать на Mac. Я бы очень хотел, чтобы это расширение работало.Предложения ?

8
задан tereško 31 March 2012 в 19:27
поделиться