PHP 4.4.0 5.2.0 and FreeTds 0.64 login trouble

php.internals

Un Named

19 years ago
Hello, I have a Linux server that's running PHP 4.4.0 and 5.2.0 along with FreeTDS 0.64 I am trying to connect to a MS SQL Server 2005 with PHP and I encounter a problem. Here is the php script content: $dbhost = "192.168.55.3:1433"; $dbuser = "sa"; $dbpass = "samepassword"; $db = mssql_connect($dbhost,$dbuser,$dbpassword) or die("Unable to connect to server"); Output of runnign script: <br /> <b>Warning</b>: mssql_connect() [<a href='function.mssql-connect'>function.mssql-connect</a>]: message: Login failed for user 'sa'. (severity 14) in <b>/bin/pipe.php</b> on line <b>7</b><br /> <br /> <b>Warning</b>: mssql_connect() [<a href='function.mssql-connect'>function.mssql-connect</a>]: Unable to connect to server: 192.168.55.3:1433 in <b>/bin/pipe.php</b> on line <b>7</b><br /> Anyway if I am logging using tsql it works: [root@softlink bin]# tsql -C Compile-time settings (established with the "configure" script): Version: freetds v0.64 MS db-lib source compatibility: yes Sybase binary compatibility: unknown Thread safety: yes iconv library: yes TDS version: 8.0 iODBC: no unixodbc: no [root@softlink bin]# tsql -S 192.168.55.3 -U sa locale is "en_US.UTF-8" locale charset is "UTF-8" Password: 1> The freetds.log files are different in each case: [working - running by tsql] .... 02:30:59.504763 1052 (iconv.c:361):iconv to convert client-side data to the "UTF-8" character set 02:30:59.504906 1052 (iconv.c:514):tds_iconv_info_init: converting "UTF-8"->"UCS-2LE" 02:30:59.505100 1052 (iconv.c:514):tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE" 02:30:59.505193 1052 (net.c:168):Connecting to 192.168.55.3 port 1433. 02:30:59.505951 1052 (write.c:134):tds_put_string converting 8 bytes of "softlink" 02:30:59.506271 1052 (write.c:162):tds_put_string wrote 16 bytes 02:30:59.506321 1052 (write.c:134):tds_put_string converting 2 bytes of "sa" 02:30:59.506360 1052 (write.c:162):tds_put_string wrote 4 bytes 02:30:59.506398 1052 (write.c:134):tds_put_string converting 4 bytes of "TSQL" 02:30:59.506434 1052 (write.c:162):tds_put_string wrote 8 bytes 02:30:59.506467 1052 (write.c:134):tds_put_string converting 12 bytes of "192.168.55.3" 02:30:59.506503 1052 (write.c:162):tds_put_string wrote 24 bytes 02:30:59.506536 1052 (write.c:134):tds_put_string converting 11 bytes of "TDS-Library" 02:30:59.506571 1052 (write.c:162):tds_put_string wrote 22 bytes 02:30:59.506604 1052 (write.c:134):tds_put_string converting 10 bytes of "us_english" 02:30:59.506640 1052 (write.c:162):tds_put_string wrote 20 bytes 02:30:59.506673 1052 (write.c:162):tds_put_string wrote 0 bytes 02:30:59.506849 1052 (token.c:310):tds_process_login_tokens() 02:30:59.508366 1052 (net.c:446):Received header 0000 04 01 01 95 00 33 01 00- |.....3..| [non working - running by php] .... 02:31:37.444823 1059 (iconv.c:361):iconv to convert client-side data to the "ISO-8859-1" character set 02:31:37.444969 1059 (iconv.c:514):tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE" 02:31:37.445067 1059 (iconv.c:514):tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE" 02:31:37.445145 1059 (net.c:168):Connecting to 192.168.55.3 port 1433. 02:31:37.446876 1059 (write.c:134):tds_put_string converting 8 bytes of "softlink" 02:31:37.447186 1059 (write.c:162):tds_put_string wrote 16 bytes 02:31:37.447269 1059 (write.c:134):tds_put_string converting 2 bytes of "sa" 02:31:37.447311 1059 (write.c:162):tds_put_string wrote 4 bytes 02:31:37.447349 1059 (write.c:134):tds_put_string converting 7 bytes of "PHP 4.0" 02:31:37.447385 1059 (write.c:162):tds_put_string wrote 14 bytes 02:31:37.447418 1059 (write.c:134):tds_put_string converting 12 bytes of "192.168.55.3" 02:31:37.447453 1059 (write.c:162):tds_put_string wrote 24 bytes 02:31:37.447485 1059 (write.c:134):tds_put_string converting 10 bytes of "DB-Library" 02:31:37.447520 1059 (write.c:162):tds_put_string wrote 20 bytes 02:31:37.447553 1059 (write.c:134):tds_put_string converting 10 bytes of "us_english" 02:31:37.447587 1059 (write.c:162):tds_put_string wrote 20 bytes 02:31:37.447620 1059 (write.c:162):tds_put_string wrote 0 bytes 02:31:37.447814 1059 (token.c:310):tds_process_login_tokens() 02:31:37.449340 1059 (net.c:446):Received header 0000 04 01 00 74 00 33 01 00- |...t.3..| The main difference here appears to be the charset that is set as UTF-8 in TSQL query regardless of freetds.conf that I specified in cmd line. PHP appears to use ISO-8859-1, is this the reason of failure and if so is there a fix? Or it is a library issue? Thank you for your time, any help is appreciated. Jim --------------------------------- Get your own web address. Have a HUGE year through Yahoo! Small Business. --------------------------------- Need a quick answer? Get one in minutes from people who know. Ask your question on Yahoo! Answers.