【问题标题】:Call to undefined function odbc_connect() php 7调用未定义函数 odbc_connect() php 7
【发布时间】:2015-12-16 20:12:40
【问题描述】:

我正在测试 php 7 并遇到了这个错误:

致命错误:未捕获错误:调用未定义函数 odbc_connect()

来自文档页面:http://php.net/manual/en/function.odbc-connect.php php 7 未列为受支持。

有没有人有办法解决这个问题或者知道什么时候会得到支持?

谢谢@

【问题讨论】:

  • 您对 PDO 有什么看法? php.net/manual/en/class.pdo.php
  • 没什么,但需要大量代码更改
  • 好吧 php7 不支持你的驱动,所以你做的任何事情都需要修改代码。
  • 我投票结束这个问题,因为 OP 正在寻找不存在的神奇解决方案。
  • 哇,它已经发布了 2 周,而且它是一个不存在的神奇解决方案?您是否有他们计划不支持的信息?我可以等一会儿。

标签: php


【解决方案1】:

doc 中有写:ODBC 支持不需要任何扩展 dll。在 PHP 5.x 中确实如此,我必须从 ini 文件中删除“extension=php_odbc.dll”。
但是在 PHP 7 中我不得不把它放回去。

我再次在新的 PHP 7 目录中找到了文件“ext/php_odbc.dll”。它对我有用:)。

【讨论】:

    【解决方案2】:

    DOC 页面确实列出了 PHP 7,所以只需安装 php-odbc 就可以了。目前我自己在 RedHat EL7 和 Remi php7 上使用它。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。但是根据您提供的链接 PHP7 实际上是受支持的。所以我不知道为什么你有这么多的 cmets 告诉你去重写你的代码。

      这最终为我解决了这个问题:

      sudo apt-get install php-odbc
      

      随后重新启动 Apache。

      【讨论】:

      • 我必须做 sudo apt install php7.0-odbc 才能工作(Ubuntu 16.04)
      【解决方案4】:

      PHP 7.2.7,在 php.ini 文件中添加 extension=php_odbc.dll,同时将数据库用作 MS Access 或 Sql Server C:\xxxxxx\php\php.ini

      *extension=php_odbc.dll

      之前没有分号

      【讨论】:

      • 这已经被多次给出了。您有什么要补充的吗?
      【解决方案5】:

      只需通过删除分号来启用“php_odbc.dll”扩展并重新启动 Apache。

      如果 php.ini 中没有这样的行,只需自己创建它(您会在 php.ini 中找到许多类似的行),添加:extension=php_odbc.dll,然后重新启动 Apache。

      如果 Apache 没有启动或无法加载 php_odbc.dll,请查看 PHP 的 ext-Folder,是否有名为 php_odbc.dll 的 DLL。如果没有这样的 DLL,Xampp/PHP7 本身不支持 ODBC。在这种情况下,您应该使用 PHP 5.x 安装较旧的 Xampp 版本

      【讨论】:

        【解决方案6】:

        来自 php.ini 文件:

        > ; Notes for Windows environments :
        > ;
        > ; - ODBC support is built in, so no dll is needed for it.
        > ; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
        

        但是,在 PHP 7 中,ODBC 不是默认设置。显式

        extension=odbc
        

        为我工作(推荐新语法)

        编辑: 如果您的架构是 x64 您必须使用 C:\Windows\SysWOW64\odbcad32.exe 而不是 C:\Windows\system32\odbcad32.exe

        【讨论】:

          【解决方案7】:

          这是错误信息:

          Redhat PHP 致命错误:未捕获错误:调用未定义函数 odbc_connect()

          在 Redhat Linux 7 上运行:

          yum install php-odbc
          

          你会得到这些包标记为红色:

          通过 php 命令行运行测试您的连接的代码示例:php [filename].php

          <?php
          // filename: test-connection.php by running command -> php test-connection.php
          $connect = odbc_connect("Driver=FreeTDS; Server=sbase.company.ca; Port=1433; TDS_Version=8; ClientCharset=UTF-8; Database=mydbase",'company\\user', 'password');
          $query = "SELECT * from mytable";
          // perform the query
          $result = odbc_exec($connect, $query);
          // fetch the data from the database
          while(odbc_fetch_row($result)){
                  $suid = odbc_result($result, 1);
                  $uid = odbc_result($result, 2);
                  $gid = odbc_result($result, 3);
                  $name = odbc_result($result, 4);
                  print("$name|$suid|$uid|$gid\n");
          }
          // close the connection
          odbc_close($connect);
          ?>
          

          享受吧!

          【讨论】:

            猜你喜欢
            • 2018-05-05
            • 1970-01-01
            • 2017-08-23
            • 1970-01-01
            • 1970-01-01
            • 2013-07-25
            • 1970-01-01
            • 1970-01-01
            • 2015-09-21
            相关资源
            最近更新 更多