【问题标题】:How to connect MSQL via unixodbc and freetds using PHP?如何使用 PHP 通过 unixodbc 和 freetds 连接 MSQL?
【发布时间】:2012-12-14 19:03:21
【问题描述】:

As described in a previous questionfreetdsunixodbc 安装在 Lion 上并使用 isql 进行测试,我尝试使用 PHP 连接到 MSSQL:

$connection = odbc_connect('SMS_GTWY', 'username', 'password');

但是,它返回:

PHP Warning:  odbc_connect(): SQL error: [iODBC][Driver Manager]Specified driver could not be loaded, SQL state IM003 in SQLConnect in testodbc.php line 3

[iODBC][Driver Manager]Specified driver could not be loaded

我该如何解决?

附: $ cat /tmp/odbc_trace上述PHP执行后的输出:

** iODBC Trace file
** Trace started on Fri Dec 14 18:03:27 2012
** Driver Manager: 03.52.0607.1008


[000000.000472]
php             7FFF738F8960 EXIT  SQLConnect with return code -1 (SQL_ERROR)
        SQLHDBC           0x7fbec48a77d0
        SQLCHAR         * 0x10e2e8ea8
        SQLSMALLINT       -3 (SQL_NTS)
        SQLCHAR         * 0x10e2e7300
        SQLSMALLINT       -3 (SQL_NTS)
        SQLCHAR         * 0x10e1873fa
        SQLSMALLINT       -3 (SQL_NTS)

[000000.000540]
php             7FFF738F8960 ENTER SQLError
        SQLHENV           0x7fbec48a7560
        SQLHDBC           0x7fbec48a77d0
        SQLHSTMT          0x0 (SQL_NULL_HANDLE)
        SQLCHAR         * 0x7fff6d1adf42
        SQLINTEGER      * 0x7fff6d1adf3c
        SQLCHAR         * 0x7fff6d1adf48
        SQLINTEGER        511
        SQLSMALLINT     * 0x7fff6d1adf3a

[000000.000598]
php             7FFF738F8960 EXIT  SQLError with return code 0 (SQL_SUCCESS)
        SQLHENV           0x7fbec48a7560
        SQLHDBC           0x7fbec48a77d0
        SQLHSTMT          0x0 (SQL_NULL_HANDLE)
        SQLCHAR         * 0x7fff6d1adf42
                  | IM003                                    |
        SQLINTEGER      * 0x7fff6d1adf3c (0)
        SQLCHAR         * 0x7fff6d1adf48
                  | [iODBC][Driver Manager]Specified driver  |
                  | could not be loaded                      |
        SQLINTEGER        511
        SQLSMALLINT     * 0x7fff6d1adf3a (59)

[000000.000784]
php             7FFF738F8960 ENTER SQLFreeConnect
        SQLHDBC           0x7fbec48a77d0

[000000.000807]
php             7FFF738F8960 EXIT  SQLFreeConnect with return code 0 (SQL_SUCCESS)
        SQLHDBC           0x7fbec48a77d0

【问题讨论】:

    标签: php macos odbc osx-lion freetds


    【解决方案1】:

    要修复,请使用FREETDSCONFODBCINIODBCINSTINI 设置环境:

    <?php
    
      putenv("FREETDSCONF=/Users/ohho/.freetds.conf");
      putenv("ODBCINI=/Users/ohho/.odbc.ini");
      putenv("ODBCINSTINI=/Users/ohho/.odbcinst.ini");
    
      $connection = odbc_connect('SMS_GTWY', 'sms_gtwy', 'sms_gtwy');
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多