如何通过 PHP 连接到 Sybase

Posted

技术标签:

【中文标题】如何通过 PHP 连接到 Sybase【英文标题】:How to connect to Sybase via PHP 【发布时间】:2013-01-02 17:31:56 【问题描述】:

我正在尝试使用 php5 连接到 Sybase 数据库。我相信我已经成功编译了带有PDO_DBLIB 的PHP,因为phpinfo() 在PDO 驱动程序下列出dblib,而freetds 作为pdo_dblib 风格。

但是,当我尝试测试连接时,我收到错误读数:

带有消息“找不到驱动程序”的“PDOException”

我正在尝试使用此代码连接到我的 LAN 上的服务器:

$dbh = new PDO("sybase:host=192.168.1.xxx;dbname=[database-name]", '[user]', '[pass]');

任何建议将不胜感激!

【问题讨论】:

你好像没有在php.ini中安装和启用驱动你可以试试这个实验驱动:php.net/manual/en/ref.pdo-dblib.php 您找到解决方案了吗?我自己无法连接到 sybase 服务器。 【参考方案1】:

您应该使用dblib 而不是sybase,如下所示:

$dbh = new PDO("dblib:host=192.168.1.xxx;dbname=[database-name]", '[user]', '[pass]');

【讨论】:

【参考方案2】:

PDO 不起作用,或者至少没有 PDO Sybase 对 php 的支持。在 Windows 上,您可以使用 ODBC,以及 PDO_SQLSRV 或 PDO_ODBC,这听起来可能很奇怪,但应该可以。

第二个选项,我会推荐它,是直接连接到 Sybase (SqlAnywhere),但你需要安装SQL Anywhere PHP Module

【讨论】:

Zdenek Machek,感谢您提供指向 SQL Anywhere PHP 模块的链接。 我正在尝试使用 SQL Anywhere PHP 模块,但是当我启动 httpd 时,我收到此错误:“无法加载 SQLAnywhere 客户端库。请确保可以找到 libdbcapi_r.so在您的 LD_LIBRARY_PATH 环境变量中。”我已将“SetEnv LD_LIBRARY_PATH /opt/sqlanywhere12/lib64”添加到我的 httpd.conf 文件中。但是,phpinfo 仍将 Apache 环境 LD_LIBRARY_PATH 显示为 /usr/local/apache2/lib。有什么建议吗? 是的,在你的机器上需要安装 Sybase SqlAnywhere 或者至少是 SqlAnywhere 客户端并且这个库需要添加到系统路径中,参见“echo $PATH” 感谢您的回复。我已经安装了 SQL Anywhere 12 Web 版,并且 libdbcapi_r.so 位于 /opt/sqlanywhere12/lib64 中。我已将"/opt/sqlanywhere12/lib64" 添加到我的系统路径中(它会在我“回显$PATH”时显示。)但是,我仍然从sqlanywhere 收到相同的错误。我了解 LD_LIBRARY_PATH 与系统路径不同,但我找不到更改 Apache Environment phpinfo() 下列出的 LD_LIBRARY_PATH 的方法。 /opt/sqlanywhere12/bin64/sa_config.sh 脚本似乎不会影响 Apache。这个变量真的是我需要改变的吗?非常感谢! 我尝试将 SQL Anywhere PHP 模块与 PHP5 一起使用,但这似乎是不可能的。我收到一个错误,模块和 php 是使用不同的模块 API 编译的【参考方案3】:

如果您使用的是 Ubuntu,您可以将 LD_LIBRARY_PATH 放在 envvars 中,它似乎可以读取...仍在尝试找到一种方法让它坚持 RHEL基于系统... Windows 我不太确定我希望您可以在

下设置系统范围的变量

我的电脑 -> 属性 -> 高级选项

如果使用的是基于 RHEL 的系统,最好包括: export LD_LIBRARY_PATH=/path/to/library/ 在 httpd 重新启动脚本中(检查它是否加载了 /etc/sysconfig/httpd,如果是,则在其中添加该行- 现在重新启动 apache,您应该会看到一些活动。

【讨论】:

这甚至与所提出的问题无关。

以上是关于如何通过 PHP 连接到 Sybase的主要内容,如果未能解决你的问题,请参考以下文章

使用 PDO 连接到 Sybase 的正确 DSN

如何在java中连接到sybase的优势数据库

如何通过 PHP 连接到远程服务器 [重复]

如何使用 Java 8 连接到 Sybase Advantage Local DB

如何测试通过xampp连接到mysql db的php登录?

如何通过管道将 PHP 应用程序连接到 MySQL?