连接 SAP Hana 数据库时调用未定义函数 odbc_connect() 消息

Posted

技术标签:

【中文标题】连接 SAP Hana 数据库时调用未定义函数 odbc_connect() 消息【英文标题】:Call to undefined function odbc_connect() message while connecting SAP Hana database 【发布时间】:2013-07-25 11:05:52 【问题描述】:

我在我的 php 页面中使用 odbc_connect() 连接到 HANA 数据库。当我在本地运行它时它工作正常。 我将相同的 PHP 页面上传到服务器,但出现此错误:

Fatal error: Call to undefined function odbc_connect()

代码:

$connect = odbc_connect("Team6DataSource", "TEAM6", "Password1", SQL_CUR_USE_ODBC);

Team6DataSource = 数据源名称。

ip地址=54.217.234.218

谁能帮帮我? 谢谢

【问题讨论】:

你检查 php.ini 文件吗? 听起来你需要定义 odbc_connect :\ 如果它在远程服务器上运行,那么我该如何更改它? 请阅读:clearfoundation.com/component/option,com_kunena/Itemid,232/… 如何定义 odbc_connect? :) 【参考方案1】:

我刚刚在 google 中获取 this instruction 这对你真的很有帮助。

    Download the SQL Server ODBC driver for your PHP client platform.(需要注册。)如果 SQL Server ODBC 驱动程序 目前不适用于您的平台,请查看ODBC-ODBC Bridge Client platforms 的列表。 ODBC-ODBC 桥是一个 Easysoft 的替代 SQL Server 解决方案,您可以 从此网站下载。 在计算机上安装 SQL Server ODBC 驱动程序并获得许可 已安装 PHP。有关安装说明,请参阅 ODBC 驱动程序 文档。请参阅文档以查看哪个环境 您需要设置的变量(LD_LIBRARY_PATH, LIBPATH, LD_RUN_PATH, SHLIB_PATH depending on the driver, platform and linker).

    /etc/odbc.ini 中创建一个连接到 SQL Server database 你想从 PHP 访问。例如,这个 SQL Server ODBC 数据源连接到 SQL Server Express 实例 为 Northwind 数据库提供服务:

    使用 isql 测试新数据源。例如: cd /usr/local/easysoft/unixODBC/bin

    ./isql -v MSSQL-PHP

[MSSQL-PHP]
Driver                  = Easysoft ODBC-SQL Server
Server                  = my_machine\SQLEXPRESS
User                    = my_domain\my_user
Password                = my_password

请复制并粘贴此脚本并执行此脚本

<?
/*
PHP MSSQL Example

Replace data_source_name with the name of your data source.
Replace database_username and database_password
with the SQL Server database username and password.
*/
$data_source='data_source_name';
$user='database_username';
$password='database_password';

// Connect to the data source and get a handle for that connection.
$conn=odbc_connect($data_source,$user,$password);
if (!$conn)
    if (phpversion() < '4.0')
      exit("Connection Failed: . $php_errormsg" );
    
    else
      exit("Connection Failed:" . odbc_errormsg() );
    


// This query generates a result set with one record in it.
$sql="SELECT 1 AS test_col";

# Execute the statement.
$rs=odbc_exec($conn,$sql);

// Fetch and display the result set value.
if (!$rs)
    exit("Error in SQL");

while (odbc_fetch_row($rs))
    $col1=odbc_result($rs, "test_col");
    echo "$col1\n";


// Disconnect the database from the database handle.
odbc_close($conn);
?>
    替换data_source_name, database_username and database_password 使用您的 SQL Server ODBC 数据源、登录名和密码。

    要在 Apache 下运行脚本,请将文件保存在您的 Apache 网站下 服务器文档根目录. For example, /var/www/apache2-default/php-mssql-connection.phtml. Then view the file in a web browser:

    http://localhost/php-mssql-connection.phtml
    
    如果您的 Web 浏览器与 Web 不在同一台计算机上运行 server,将 localhost 替换为 Web 服务器的主机名或 IP 地址。

    要从命令行运行脚本,请保存文件。

    例如, /tmp/php-mssql-connection.php。然后运行 ​​$php /tmp/php-mssql-connection.php.

更多详情请参考LINK

【讨论】:

【参考方案2】:

下载this,将.dll复制到PHP文件夹并在php.ini文件中添加:

extension=php_sqlsrv_7_ts_x64.dll
extension=php_pdo_sqlsrv_7_nts_x64.dll

【讨论】:

以上是关于连接 SAP Hana 数据库时调用未定义函数 odbc_connect() 消息的主要内容,如果未能解决你的问题,请参考以下文章

[SAP HANA] SAP HANA 管理员连接不上, 连接超限 保留管理员连接

SAP HanaXFILE:SAP Hana CDS 开发简介

更新到 Laravel 5.3 后播种时调用未定义的方法 Illuminate\Database\Query\Builder::lists()

Laravel Eloquent 关系有很多错误:在 where 上使用时调用未定义的方法

使用Eclipse连接SAP云平台上的HANA数据库实例

HANA系列SAP 第一篇EXCEL连接SAP HANA的方法(ODBC)