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

问题描述 投票:0回答:3

我在 PHP 页面中使用

odbc_connect()
连接到 HANA 数据库。当我在本地运行它时效果很好。

我将相同的 PHP 页面上传到服务器中,但收到此错误:

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

代码:

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

Team6DataSource = 数据源名称。

IP 地址 = 54.217.234.218

有人可以帮助我吗? 谢谢

php odbc hana
3个回答
6
投票

我刚刚通过谷歌获取这个说明这对你来说真的很有帮助。

  1. 下载适用于您的 PHP 客户端的 SQL Server ODBC 驱动程序
    平台。
    (需要注册。)如果 SQL Server ODBC 驱动程序 目前不适用于您的平台,请检查以下列表
    ODBC-ODBC Bridge 客户端平台。 ODBC-ODBC 桥是一个
    Easysoft 的替代 SQL Server 解决方案,您可以 从这个网站下载。
  2. 在所在计算机上安装 SQL Server ODBC 驱动程序并获得许可 PHP 已安装。有关安装说明,请参阅 ODBC 驱动程序 文档。参考文档看看是哪个环境 您需要设置的变量
    (LD_LIBRARY_PATH, LIBPATH, LD_RUN_PATH,
    SHLIB_PATH depending on the driver, platform and linker).
  3. /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);
?>
  1. 更换
    data_source_name, database_username and database_password
    使用您的 SQL Server ODBC 数据源、登录名和密码。
  2. 要在 Apache 下运行脚本,请将文件保存在 Apache Web 下 服务器的文档根目录

    . For example,
    /var/www/apache2-default/php-mssql-connection.phtml. Then view the
    file in a web browser:

    http://localhost/php-mssql-connection.phtml
    
  3. 如果您的网络浏览器与网络不在同一台计算机上运行 server,将 localhost 替换为 Web 服务器的主机名或 IP 地址。
  4. 要从命令行运行脚本,请保存文件。

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

更多详情请参阅此LINK


0
投票

下载this,将

.dll
复制到PHP文件夹并在
php.ini
文件中添加:

extension=php_sqlsrv_7_ts_x64.dll
extension=php_pdo_sqlsrv_7_nts_x64.dll

0
投票

窗户
我下载了 apache 2.4 x64 zip;复制到:D:\Apache24-devel
https://www.apachelounge.com/download/
我下载了 php 8.3 threadsafe x64 zip;复制到 D:\php-8-ts

请注意,在下面的路径中,我使用“/...”而不带驱动器号“D:”,因为我在同一驱动器号“D:”上安装/解压了 Apache 和 PHP。

在 Apache conf/httpd.conf 中:

LoadModule php_module "/php-8-ts/php8apache2_4.dll"
AddHandler application/x-httpd-php .php

<FilesMatch \.(php$|php3)>
      SetHandler application/x-httpd-php
</FilesMatch>
# configure the path to php.ini
PHPIniDir "/php-8-ts/"

在 php-8-ts/php.ini 中:

extension=odbc
extension_dir = "D:/php-8-ts/ext"

用于配置检查 (odbc) 创建:
D:/Apache24-devel/htdocs/dirX/phpinfo.php:

<?php
// Show all information, defaults to INFO_ALL
phpinfo();

// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);
?>

使用/检查:
http://localhost/dirX/phpinfo.php

© www.soinside.com 2019 - 2024. All rights reserved.