$db_name = "hana";
$username = "SYSTEM";
$password = "my_real_password";
$conn = odbc_connect($db_name, $username, $password) or die(odbc_error_msg());
$sql = "SELECT REGION_NAME, SUM(SALES_AMOUNT) FROM \"_SYS_BIC\".\"mydemo/CV_SALES\" GROUP BY REGION_NAME";
$result = odbc_prepare($conn, $sql);
odbc_close($conn);
我已经确认它可以连接。
当我运行 $result = odbc_prepare($conn, $sql); 它向我抛出了这个错误
PHP 警告:odbc_prepare():SQL 错误:[unixODBC][SAP AG][LIBODBCHDB SO][HDB] 一般错误;-10808 功能(可滚动结果)尚未在模块中实现:/HDB/IMP/NewDB100_REL/src// /sys/src/Inter,第 9 行 /home/payomdousti/Developer/hana.php 中的 SQLPrepare 中的 SQL 状态 S1000
我用它来安装 php odbc 驱动程序 => sudo apt-get install php5-odbc
PHP版本
带有 Suhosin-Patch (cli) 的 PHP 5.3.10-1ubuntu3.4(构建时间:2012 年 9 月 12 日 18:59:41) 版权所有 (c) 1997-2012 PHP Group Zend Engine v2.3.0,版权所有 (c) 1998-2012禅德科技
正如您在 Rev38 SAP HANA 的 HDB 驱动程序中看到的那样,我正在使用 unixODBC。
我可以使用带有以下代码的 pyodbc 在 Python 中成功准备和执行查询。
import pyodbc conn = pyodbc.connect('DSN=hana;UID=SYSTEM;PWD=my_real_password') cursor = conn.cursor() cursor.execute("SELECT REGION_NAME, SUM(SALES_AMOUNT) FROM \"_SYS_BIC\".\"mydemo/CV_SALES\" GROUP BY REGION_NAME") print cursor.fetchall() conn.close()
通过 ODBC 通过 PHP 进行连接是一项业务需求。我们无法访问 SAP XS,因此这确实是最佳选择。我对使用 RFC、SOAP、OData 或 XMLA 的解决方案不感兴趣