que estoy tratando de conseguir la extensión PDO_ODBC para PHP activado en mi Mac que se está ejecutando PHP 5.3 Esto es lo que hice para tratar de conseguir que funcione:Habilitación de extensión PHP PDO_ODBC en un Mac OS X
he instalado UnixODBC con cerveza
$ brew install unixodbc
ha cargado la fuente de PHP 5.3.8. En la terminal navegué a la carpeta pdo_odbc. Entonces hizo lo siguiente.
$ phpize $ ./configure --with-pdo-odbc=unixODBC $ make
Se ha producido un error.
/Users/todd/Downloads/php-5.3.8/ext/pdo_odbc/pdo_odbc.c:43: error: ‘ZEND_MOD_END’ undeclared here (not in a function) /Users/todd/Downloads/php-5.3.8/ext/pdo_odbc/pdo_odbc.c: In function ‘zm_startup_pdo_odbc’: /Users/todd/Downloads/php-5.3.8/ext/pdo_odbc/pdo_odbc.c:135: warning: cast to pointer from integer of different size
Sobre la base de algunos blogs que sustituyen
ZEND_MOD_END
con{NULL,NUll, NULL}
y corrieron a hacer de nuevo. Esta vez cumplió.Luego ejecuté "sudo make install" y eso instaló la extensión en el lugar correcto. Modifiqué php.ini para habilitarlo. Y aparece en phpInfo()
Hasta ahora todo bien. Pero cuando comienzo a la ejecución de pruebas simples recibo errores sobre todos los demás intentan
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
Este fue arrojado, cuando traté de ejecutar este código:
<?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));
?>
esta línea hace que la excepción.
$stmt->execute(array(2));
¿Alguien tiene alguna experiencia para que pdo_odbc funcione en la Mac? Realmente me gustaría que esta extensión funcione. Sugerencias?
no está seguro de si hay un equivalente cerveza pero me acaba de ejecutar "sudo port install php5-ODBC" y se instala fácilmente. – Kevin
Parece que hay un error en la extensión PDO_ODBC: https://bugs.php.net/bug.php?id=52942 Supongo que es una mala llamada 'malloc()' para asignar memoria que ya ha sido asignada. –
Kevin, estoy bastante seguro de que php5-odbc es solo una antigua extensión PDO ODO. Estoy tratando de que la extensión PDO-ODBC se ejecute en el mac. – toddgeist