gpt4 book ai didi

php - 在 Mac OSX 上启用 PHP pdo_odbc 扩展

转载 作者:可可西里 更新时间:2023-11-01 12:39:55 25 4
gpt4 key购买 nike

我正在尝试在运行 PHP 5.3 的 Mac 上启用 PHP 的 pdo_odbc 扩展这是我为使其正常工作所做的工作:

  1. 我用 brew 安装了 UnixODBC

    $ brew install unixodbc
  2. 下载了 PHP 5.3.8 的源代码。在终端中,我导航到 pdo_odbc 文件夹。然后进行了以下操作。

    $ phpize
    $ ./configure --with-pdo-odbc=unixODBC
    $ make

    出现错误。

    /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

    根据一些博客,我将 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 上工作的经验。我真的很想让这个扩展工作。建议?

最佳答案

也许值得注意的是,Apple 选择 iODBC(而不是 UnixODBC)用于 Mac OS X,并将其与 Jaguar (10.2) 捆绑在一起。你应该得到 latest update from the iodbc.org site ,因为苹果从来没有跟上官方的项目补丁。我建议同时安装框架等,并将单独的补丁应用于 Apple 捆绑的 header 和动态库。

过去与 UnixODBC 相关的 malloc 问题已通过转移到 iODBC 得到解决。我不知道您会遇到这种情况,但这似乎是一项很小的投资。

(ObDisclaimer:我为 OpenLink Software 工作;我们维护和支持 iODBC 项目。我个人从你选择这个选项中没有得到任何好处。)

关于php - 在 Mac OSX 上启用 PHP pdo_odbc 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com