从PHP

时间:2018-04-21 04:25:42

标签: php database sybase

我有一个基于Sybase数据库的应用程序。该应用程序在Windows Server 2003上运行。我尝试从php获取数据库,并显示缺少许多dll个文件,包括php sybase扩展。我检查了php扩展dir,发现该文件存在于显示错误的路径上。

这里我想提一下,我在Windows服务器上安装了xampp 1.8.0并启用了php.ini的sybase扩展。

我使用以下代码进行连接,如php doc

所述
<?php
$link = sybase_connect('SYBASE', '', '')
        or die("Could not connect !");
echo "Connected successfully";
sybase_close($link);
?>

==更新==

显示以下dll文件丢失,我下载并手动添加。

libcs.dll

libintl.dll

iconv.dll

现在我收到以下错误,

The procedure entry point iconv_open could not be located in the dynamic link library iconv.dll

从启用Sybase PHP扩展的开始就出现此错误。

PHP Startup: unable to load dynamic library 'C:\xampp\php\ext\php_sybase_ct.dll' - the specified procedure could not be found

1 个答案:

答案 0 :(得分:0)

当我看到unable to load dynamic library 'C:\xampp\php\ext\php_sybase_ct.dll'时,问题已归结为a)拥有一组旧的/过时的libs或b)使用引用“旧”Sybase lib名称的应用程序(使用ASE 15,Sybase改变了他们的libs的名字,一些应用程序还没有拿到这个。)

对于第一个问题,明显的(?)解决方案是下载适当的一组Sybase库(这将取决于您的应用程序代码/版本以及ASE版本)。 [帖子中的信息不足以了解这是否可以解释您的情况。]

对于第二个问题,有一个相对简单的解决方案(以下是基于具有Sybase特定子目录的PHP应用程序,该子目录包含Sybase客户端库):

  • 在Windows cmd窗口中..
  • 为您的应用程序提供* .bat文件[加载您应用的环境]
  • cd到名为...\OCS*\scripts
  • 的Sybase子目录
  • 运行copylibs.bat
  • 再次尝试启动您的PHP应用程序......
  • 如果问题得到解决,那么php_sybase_ct.dll错误消息就会消失