【问题标题】:How to connect to sybase from PHP in UNIX using ODBC+FreeTDS?如何使用 ODBC+FreeTDS 从 UNIX 中的 PHP 连接到 sybase?
【发布时间】:2017-02-18 13:31:43
【问题描述】:

我尝试使用 FreeTDS 从终端连接 sybase,它工作正常,但我无法使用 PHP 连接数据库。

我已对以下文件进行了更改。

/etc/odbc.ini文件:

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
Server = 
Port = 
Database = 
Username = 
Password = 

freetds.conf文件

[sybase]
    host=
    port=
    Tds version=5.0

使用终端可以正常工作

tsql -S SYBASE -U username -P password

但是从 PHP 连接我收到错误:

[unixODBC][驱动管理器]未找到数据源名称,未指定默认驱动

PHP文件代码:

$db = ADONewConnection('odbc');

$DSN ='UID=username;PWD=password;EngineName=dbServiceName;AutoStop=No;Integrated=No;Debug=No;DisableMultiRowFetch=No;CommLinks=SharedMemory,TCPIP{};Compress=No;Driver={FreeTDS}';

$db->Connect($DSN );

【问题讨论】:

    标签: php linux odbc sybase freetds


    【解决方案1】:

    我知道在某些版本中,您需要使用服务器的 IP 而不是名称,例如 freetds.conf

    [myserver]
        host = 10.10.10.10
        port = 5000
        tds version = 5.0
    

    我也不知道tds version 是否区分大小写,但我一直看到它是小写的。您确定 PHP 正在从与命令行版本相同的freetds.conf 读取数据吗?

    【讨论】:

    • 非常感谢。这个对我有用。我在连接字符串中添加了 IP 地址和免费 tds 版本。
    • 很高兴听到!你能把答案标记为正确吗?干杯。
    猜你喜欢
    • 2011-06-16
    • 2019-12-12
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    相关资源
    最近更新 更多