问题描述
我们正在尝试使用PHP与Progress数据库进行接口,以使用PHP插入,检索,更新和删除多种语言的字符串。 这是有效的方法:
- 我们可以使用unixODBC和isql进行连接,并运行更新脚本来更新具有Unicode字符的字段,并且效果很好。
- 从命令行运行PHP脚本,该命令行将运行更新脚本,以使用也可以正常工作的unicode字符更新字段。
- 如果我们有一个网络服务器调用与上述2)完全相同的PHP脚本,它将使用表中的值更新表中的记录,该值将是Unicode的额外编码。 unixODBC存在一个已知问题,该问题曾经对unicode值进行双重编码,而我们正在使用的平台版本最初是较旧版本的驱动程序,但有此问题。我们安装了没有问题的较新的unixODBC驱动程序(我相信是2.3.9),现在isql和命令行PHP可以正常工作。 我们怀疑的是,即使我们试图通过将定义添加到LD_LIBRARY_PATH,ODBCINI和ODBCINST中作为httpd的一部分来确保Web服务器仍使用我们为LD_LIBRARY_PATH,ODBCINI和ODBCINST设置的环境变量,该Web服务器仍在使用旧版本的unixODBC。阿帕奇。
我希望这个问题Cannot Connect to informix through ODBC on linux machine上被列为Edit3Solution的解决方案能够为我解决问题,但是我们已经采取了将环境变量添加到httpd但没有骰子的步骤。
In the PHPinfo from a browser,we see:
Apache Environment
Variable Value
LD_LIBRARY_PATH /usr/lib:/dr01/repository/lib:/qad/progress/dlc11264/lib
ODBCINST /etc/odbcinst.ini
ODBCINI /etc/odbc.ini
但是我们也看到:
ODBC
Support enabled
Active Persistent Links 0
Active Links 0
ODBC library unixODBC
ODBC_INCLUDE -I/usr/include
ODBC_LFLAGS -L/usr/lib64
ODBC_LIBS -lodbc
为解决此问题,我们尝试将/ usr / lib64目录中odbc相关代码的虚拟路径设置为/ odbc相关文件的/ usr / lib目录中的虚拟路径。
到目前为止,还没有运气。行为是相同的。 Apache服务器是否有可能在调用PHP时忽略了我们在服务器上定义的unixODBC,从而使用了自己的unixODBC?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)