克米亚sap论坛,最好的sap论坛,sap系统,sap培训,kemiya,克米亚,sap账号,sap ides,sap mm,sap hana,sap fico,sap pp

 找回密码
 注册
查看: 299|回复: 8

PHP访问SAP HANA数据库

[复制链接]
kmy 发表于 2018-3-30 15:24:19 | 显示全部楼层 |阅读模式
最近接到一个项目,因为客户嫌LUMIA的 License太贵,用户又多,所以想用省钱的办法看SAP HANA的报表(B/S架构),所以给了用PHP做HANA报表的方案。
首先要考虑的是连接问题,原来我做项目时,都是优先考虑PHP ADODB组件,但PHP ADODB组件中没有封装HANA的驱动,所以就只好用ODBC的办法。
SAP HANA 的ODBC联接有很多坑,其实都是源于对HANA, Windows操作系统,PHP ODBC的 64bit, 32bit的概念模糊混淆所至。
这里要提到的第一个重点,就是PHP ODBC要联接SAP HANA数据库,必须要安装HANA ODBC client的 32 bit驱动,64bit的 ODBC 暂不支持,我已经测试了N遍不通,ODBC驱动安装完以后,在windows\SysWOW64\目录下打开odbc32.exe, 然后自行新建一个系统DSN,选择HDBODBC32驱动,输入ServerNode, 用户名,密码等信息,点connect,如果 OK, 那么恭喜你完成了第一步。
在讲第二个重点之前,我先说明一下我的开发环境 Windows2008 R2(64Bit)操作系统,PHP的环境我采用的是WAMP组件,这第二个重点就是必须安装32 Bit 的WAMP, 而不是64bit的,否则用odbc_connect函数时会报错,连接不上数据源。
安装好 WAMP环境后,写一个debug.php如下
$server_node=“192.168.2.11:30015”;
$db_name=“test01';
$conn = odbc_connect("Driver=HDBODBC32;ServerNode=$server_node;Database=$db_name;",$username,$password,SQL_CUR_USE_ODBC);

//这里要注意两点,直接连你建立的DSN名字是不行的,因为系统默认是去64bit的ODBC中去找DSN名字,所以这里的odbc_connect中要写完整的包括驱动名称的连接字符串,另外在最后加上游标类型 SQL_CUR_USE_ODBC
if($conn){
echo "so good! System connected";
}else{
echo "So bad! System cannot be connected!";
}

在浏览器中打开 http://localhost/testhdb/debug.php
如果你看到 so good! System connected, 那恭喜你,可以进行下面的开发了。
如果在开发中遇到一些问题,请参考我转载的两个英文帖,专门讲ODBC参数的。
希望能对有同类需求的朋友有所帮助,有问题欢迎交流。

mimsa 发表于 2018-4-24 14:37:10 | 显示全部楼层
sap abap
酒哥 发表于 2019-1-9 08:39:20 | 显示全部楼层
sap论坛
Cefeskade 发表于 2019-2-14 06:20:20 | 显示全部楼层
SAP QQ群
liiiz 发表于 2019-3-8 08:26:30 | 显示全部楼层
sap pp
Vic 发表于 2019-4-21 16:21:59 | 显示全部楼层
sap免费教程
gb120 发表于 2019-5-20 18:16:29 | 显示全部楼层
中国最好的sap论坛
coolpix42 发表于 2019-5-21 09:16:19 | 显示全部楼层
sap sd
eric_dw 发表于 2019-6-16 06:25:08 | 显示全部楼层
sap系统
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|克米亚sap论坛,sap账号,sap系统,sap ides,sap学习机,sap练习环境 ( 渝ICP备18002525号-5 )

GMT+8, 2019-6-26 10:37

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表