【问题标题】:Call to undefined function odbc_connect() in Ubuntu在 Ubuntu 中调用未定义的函数 odbc_connect()
【发布时间】:2016-07-15 09:48:41
【问题描述】:

我正在尝试使用 PHP 连接到 SQL 服务器。我已经为 SQL Server 安装了 Microsoft ODBC Driver 13,并使用“isql”命令对其进行了测试。现在,当我尝试用 PHP 连接到服务器时,它总是崩溃并显示“http 错误 500”。代码如下:

<?php
$server = merkur.edikt.local;
$database = ITServiceE;
$connection = odbc_connect("Driver={ODBC DRIVER 13 for SQL Server};
    Server=$server;Database=$database;", 
    'user', 
    'PW'
);
echo "connected";
?>

我使用的是 Ubuntu 16.04 服务器以及 Apache2 和 PHP 7。 我认为 Apache 的权限可能有问题(如果 Apache 可以访问 ODBC 驱动程序),但我不确定这是如何工作的。 编辑: 这是来自 Apache 错误的日志:

PHP Notice:  Use of undefined constant merkur - assumed 'merkur' in         /var/www/html/index.php on line 2
PHP Notice:  Use of undefined constant edikt - assumed 'edikt' in /var/www/html/index.php on line 2
PHP Notice:  Use of undefined constant local - assumed 'local' in /var/www/html/index.php on line 2
PHP Notice:  Use of undefined constant ITServiceE - assumed 'ITServiceE' in /var/www/html/index.php on line 3
PHP Fatal error:  Uncaught Error: Call to undefined function odbc_connect() in /var/www/html/index.php:4\nStack trace:\n#0 {main}\n  thrown in /var/www/html/index.php on line 4

文件 odbc.ini 为空,odbcinst.ini 如下所示:

[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
Threading=1
UsageCount=2

【问题讨论】:

  • 您查看过 Apache 日志吗? (/var/log/apache2/error.log 是在 Ubuntu 16.04 上记录 Apache 错误的默认位置)您可以编辑您的问题并显示您在 /etc/odbc.ini/etc/odbcinst.ini 文件中的内容吗?
  • 感谢提示,我已编辑问题

标签: php sql-server apache ubuntu odbc


【解决方案1】:

调用未定义函数odbc_connect() 表示您的 PHP 系统没有任何具有该名称的函数。

由于它不是用纯 PHP 编写的用户函数,而是来自 PHP 扩展的函数,这意味着您尚未安装 such extension。值得注意的是,PHP 扩展与 SQL Server 驱动不同(你需要both)。

您的代码还包含一些我猜想是字符串的未定义常量。我强烈建议您在开发框中启用完整的错误报告,这样您就无需查看错误日志来了解简单的错误。

【讨论】:

  • 感谢您的建议,但我已经搜索了互联网,我仍然不明白如何安装extension。你能帮我解决这个问题吗?
  • 没关系,我终于找到了。我只是 sudo apt-get install php7.0-odbc
猜你喜欢
  • 2018-05-05
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 2016-05-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多