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

 找回密码
 注册
查看: 1424|回复: 22

PHP 上用 SAP HANA 也很棒!(Linux版本)

[复制链接]
kmy 发表于 2013-4-29 14:12:16 | 显示全部楼层 |阅读模式
原文来自:PHP rocks on SAP HANA too! (Linux version)

如果你认识我,你就知道我不是玩Linux的人。不过,我也把我2007年买的 LG T1 Express Dual笔记本电脑装上了Linux。这台电脑还是当年我第一次参加SAP TechEd的时候买的。你肯定能够想象,慢慢杀死一台笔记本的最好办法就是给它装上Windows和越来越多的软件。所以,我的本本已经被我闲置很久了,直到我给它装上Ubuntu。它给我的本本带来了新生。

人们的传说是对的:Linux在最垃圾,最古老的本本上都跑得风快。你看,我现在就在我的Linux上写这篇博客呢。

几周以前我意识到我从来还没有写过在PHP上使用SAP HANA的文章,而很多人在尝试这么干时遇到一些问题。于是我写了一篇博客:PHP rocks on SAP HANA too!基于SAP HANA的PHP)。不过当时我是在Windows上面实现的,很多用户还在Linux下挣扎。所以,我该写这篇新博客了。

必须承认,没有 Ethan Zhang写的这篇伟大的博客:HANA with odbc on Ubuntu 12.04,我可能也还在配置的细节中挣扎。如论如何,作为了一个非Linux玩家,我想把配置的步骤和遇到的问题以及如何解决的都记下来会是个好主意。

当然,我的Linux上可没装PHP。所以,第一步就是安装PHP。不过我不想花太多时间去分别安装各个组件,所以我用LAMP
安装LAMP:
  • $ sudo apt-get install tasksel  
  • $ sudo tasksel install lamp-server  


运行完这两个命令以后,PHP就能用了。所以下一步就是安装SAP HANA 客户端。(32位Linux版)

现在,我们需要连到SAP HANA服务器。unixODBC是最好的选择。
安装unixODBC:
  • $ sudo apt-get install unixODBC unixODBC-dev  


装好以后就该配置ODBC连接了:
  • $ sudo vi odbc.ini  
  •   
  • [HDB]  
  • driver = /usr/sap/hdbclient32/libodbcHDB32.so  
  • ServerNode = hana_server:30115  


好了,现在测试一下连接:
  • $ isql -v HDB SYSTEM manager  


在这里我遇到一个出错信息,说找不到libodbcHDB32.so因为文件目录不存在。很奇怪,我决定查一下它的依赖性:
  • $ ldd /usr/sap/hdbclient32/libodbcHDB32.so  


这个命令告诉我系统里找不到 libaio.so。所以,在Ubuntu Software Center里安装:
[/url]
装好后isql就能运行成功了。下面我偷个懒,从我另外一个博客里拷来这段代码PHP_HANA.php:
  • <?php  
  • $conn = odbc_connect("HDB","SYSTEM","manager",SQL_CUR_USE_ODBC);  
  • if (!($conn))   
  • {  
  •           echo "<p>Connection to DB via ODBC failed: ";  
  •         echo odbc_errormsg ($conn);  
  •         echo "</p>\n";  
  • }  
  • else{  
  •           if(isset($_POST["CARRID"]) == false){  
  •                   $sql = "SELECT CARRID, CARRNAME FROM SFLIGHT.SCARR WHERE MANDT = 300";  
  •                $rs = odbc_exec($conn,$sql);  
  •                print("<DIV ALIGN='CENTER'>");  
  •                print("<H1>SAP HANA from PHP</H1>");  
  •                print("<FORM NAME='Get_Data' ACTION='$_SERVER[PHP_SELF]' METHOD='POST'>");  
  •                print("<SELECT NAME='CARRID'>");  
  •                while($row = odbc_fetch_array($rs)){  
  •                      $carrid = $row["CARRID"];  
  •                      $carrname = $row["CARRNAME"];  
  •                      print("<OPTION VALUE='$carrid'>$carrname");  
  •                }  
  •         print("</SELECT>");  
  •         print("<INPUT TYPE='SUBMIT' VALUE='Get Data'>");  
  •         print("</FORM>");  
  •         print("</DIV>");  
  •         }  
  •         else{  
  •                   $carrid_param = $_POST["CARRID"];  
  •                 $sql = "SELECT * FROM \"_SYS_BIC\".\"blag/AV_FLIGHTS\"  
  •                         WHERE CARRID = '$carrid_param'";  
  •                 $rs = odbc_exec($conn,$sql);  
  •                 print("<DIV ALIGN='CENTER'><TABLE BORDER=1>");  
  •                 print("<TR><TH>MANDT</TH><TH>CARRID</TH><TH>CONNID</TH>  
  •                        <TH>COUNTRYFR</TH><TH>CITYFROM</TH>  
  •                        <TH>AIRPFROM</TH><TH>COUNTRYTO</TH>  
  •                        <TH>CARRNAME</TH><TH>DISTANCE</TH></TR>");  
  •                 while($row = odbc_fetch_array($rs)){  
  •                           $mandt = $row["MANDT"];  
  •                 $carrid = $row["CARRID"];  
  •                 $connid = $row["CONNID"];  
  •                 $countryfr = $row["COUNTRYFR"];  
  •                 $cityfrom = $row["CITYFROM"];  
  •                 $airpfrom = $row["AIRPFROM"];  
  •                 $countryto = $row["COUNTRYTO"];  
  •                 $carrname = $row["CARRNAME"];  
  •                 $distance = $row["DISTANCE"];  
  •                 print("<TR><TD>$mandt</TD><TD>$carrid</TD>  
  •                          <TD>$connid</TD><TD>$countryfr</TD>  
  •                          <TD>$cityfrom</TD><TD>$airpfrom</TD>  
  •                          <TD>$countryto</TD><TD>$carrname</TD>  
  •                          <TD>$distance</TD></TR>");  
  •                }  
  •                print("</TABLE>");  
  •                print("<A HREF='PHP_HANA.php'>Go Back</A></DIV>");  
  •           }  
  • }  
  • ?>  


运行一下:
[url=http://scn.sap.com/servlet/JiveServlet/downloadImage/38-79648-182958/PHP_HANA_Linux_001.png]


[url=http://scn.sap.com/servlet/JiveServlet/downloadImage/38-79648-182959/PHP_HANA_Linux_002.png][/url]
你看到了,不是很困难吧,对一个Windows玩家来说也是


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
在繁华里落寞 发表于 2017-7-13 23:52:19 | 显示全部楼层
kemiya
junhaocdut 发表于 2017-7-13 12:51:53 | 显示全部楼层
SAP认证考试
junhaocdut 发表于 2017-7-14 00:10:39 | 显示全部楼层
SAP实施工程师,加上了工程师目的还是需要让大家有足够的自信去工作学习。
wjqq995978483 发表于 2017-7-14 04:35:43 | 显示全部楼层
为SAP最终用户,咨询伙伴, 人才猎头,资深顾问以及第三方产品供应商等提供综合性服务。
溪映斜阳晚 发表于 2017-7-13 19:34:14 | 显示全部楼层
中国SAP培训零风险高薪就业开创者,就业学员遍布全球SAP系统,世界500强企业定向委培
相忘江湖 发表于 2017-7-14 16:05:00 | 显示全部楼层
克米亚sap论坛
smh 发表于 2017-7-14 12:33:14 | 显示全部楼层
sap培训
斯考尔 发表于 2017-7-14 01:50:10 | 显示全部楼层
kemiya
ERP100 发表于 2017-7-14 03:21:04 | 显示全部楼层
SAP论坛
smh 发表于 2017-7-14 05:08:33 | 显示全部楼层
顶尖SAP顾问授课,是国内最大SAP培训实战中心,学员就业率稳居行业第一。
xjxiemin 发表于 2017-7-20 14:27:00 | 显示全部楼层
sap s4/hana
zhiguan521 发表于 2017-7-21 00:46:34 | 显示全部楼层
sap hana
bw新手 发表于 2017-7-20 22:46:25 | 显示全部楼层
SAP在线免费文档学习
zhiguan521 发表于 2017-7-20 18:11:35 | 显示全部楼层
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.

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