PHP PDO_mssql SQLSTATE[01002] Adaptive Server connection failed (severity 9)

前端 未结 2 585
小蘑菇
小蘑菇 2020-12-09 19:33

I\'m connecting to external MSSQL database for exports from PHP55/osx and I have wierd issue.

code:

new \\PDO(\"dblib:host={$hostnam         


        
相关标签:
2条回答
  • 2020-12-09 20:08

    My solution:

    Get FreeTds

    • brew install freetds
    • copy everything in the lib/ folder of your freetds installation into the lib/ folder of your PHP installation directory, replacing the old versions of: libct.4.dylib, libct.a, libct.dylib, libsybdb.5.dylib, libsybdb.a, libsybdb.dylib

    Compile and install the dblib extension

    • download the php source for whatever php version you have installed
    • navigate to the ext/pdo_dblib subfolder of the source
    • run phpize, making sure it is the correct binary for your installation
    • run the configure command with e.g. parameters: ./configure --with-php-config=/usr/local/php5/bin/php-config --with-pdo-dblib=/usr/local/Cellar/freetds/0.95.19/
    • run make
    • copy modules/pdo_dblib.so into your PHP installation directory, replacing the old version
    0 讨论(0)
  • 2020-12-09 20:28

    Check these:

    1. locate freetds.conf on your disk. It is possible it exists in several places and tsql uses one while PHP used another one. Best is to symlink them into one common file and test on that. Note that a common place for that file is ~/.freetds.conf beside /etc/ or /usr/local/etc/

    2. there should be a [global] section on your freetds.conf file. Put there these lines :

      tds version = 8.0

      text size = 20971520

      client charset = UTF-8

    Of course, I expect that you already checked which driver is loaded by PHP with phpinfo(): mssql, sqlsrv or dblib

    0 讨论(0)
提交回复
热议问题