[thelist] [MSSQL] - connection from PHP

Ron Dorman rwd at csi1st.net
Mon Sep 15 09:53:47 CDT 2003

Paul Bennett wrote:

> [snip]
> I have the alias "Server" set up on freetds.conf, with the settings:
> [Server]
> host =
> port = 1433
> tds version = 7.0
> and have set the environment vars at the beginning of my php script:
> putenv("SYBASE=/usr/local/freetds");
> putenv("TDSVER=7.0");
> when I try to use mssql_connect ( 'Server', 'Paul', 'Bennett') the 
> script fails silently - the connection function returns false, but 
> there is no data in mssql_get_last_message ().
> As an experiment, when I try to connect using mssql_connect ( 
> '', 'Server', 'Paul') I get:
> Sybase message: Login failed for user 'SERVER\Guest'. (severity 14)
> As another experiment, when I try to connect using mssql_connect ( 
> ',1433', 'Server', 'Paul') - adding port 1433 to the end of 
> the ip string It fails silently again.
> Any ideas how I can figure out how to connect? 

Hi Paul,

Here are few snippets I dug up trying to get RH 9, Apache 2, php, SSL 
talking to a MSSQL server. Maybe something here will spark an idea or 
provide and answer for you. I still don't have mine running, getting 
connection refused accessing the server with https protocol, so I can't 
tell you anything solid.

Add the following to your freetds.conf and you wont need the 
"" stuff that was posted by others.
    host =
    port = 1433
    tds version = 7.0
    text size = 147483647

You can use "MsSqlServer" to connect.I had problem mssql_bind, so I gave
    "EXEC ProcedureFoo @Foo = foo;"
to mssql_query and it worked.

Like others have mentioned, you would want to change the text size in 
order to get anything bigger than 4kb.I made my mssql.textsize = 147483647.

You need to compile your FreeTDS based on what MsSQL server version you 
are using. When compiling use the flags --with-tdsver= and then append 
the MsSQL version you are using. For MsSQL 2000, its 7.0.

We compiled PHP with "--with-mssql=/usr/local/freetds", and found that 
we could only mssql_connect using the IP:port syntax, not the name we 
defined in freetds.conf.

To fix this, we added to the /usr/local/apache2/bin/envvars file:

Its possible to change the default connection type from Named Pipes to 
WITHOUT installing the Connectivity-Part from the MSSQL7 Server-cd,

The registry-key,


holds the current connection-type.

Initially its set to "DSQUERY"="DBNMPNTW" which corresponds to Named Pipes.

Change it to "DSQUERY"="DBMSSOCN" which corresponds to TCP/IP.

(Only tested on Win2KPro)

Hope something helps,
Ron D.

More information about the thelist mailing list