Re: Getting PHP for Windows to talk to MS SQL?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



weston@xxxxxxxxxxxxxxx wrote:

I'm trying to get PHP (for Windows) to talk to MS SQL Server. This
is proving to be non-trivial.


I downloaded and installed the Windows binary package on my machine (the machine is running Microsfot Windows XP Professional), and jumped through the hoops to get it running under Apache 2.0. So
far, so good.


Now, the first thing I noted was that the mssql functions actually
don't seem to exist in the binary... and apparently you have to
compile them in to PHP, after having built FreeTDS. This seems a bit
odd, as it's not at all clear to me that FreeTDS actually will
build under Windows at all (it being a UNIX solution). I did try
building it under cygwin, which ended with a flurry of error messages
in bsqldb.c, so this assumption seems correct.


I did also note there are some DLLs one is supposed to install...
php_mssql.dll and ntwdblib.dll. I added both to Windows\System32, and
uncommented the php_mssql.dll line in php.ini, but
this didn't seem to change anything. This script:

	if(function_exists('mssql_connect'))
		echo "\nMSSQL functions present";
	else
		echo "\nMSSQL functions apparently missing";

gives the second result.


All right, approach #2... maybe I can use COM objects to try to connect to an ODBC data source, something like an example I found
on the php documentation for mssql:


	$db = new COM("ADODB.Connection");
	$dsn = "DRIVER=SQL Server; SERVER=my.local.server;UID=user;PWD=passwd; DATABASE=dbname";
	$db->Open($dsn);
	$rs = $db->Execute("SELECT * FROM project LIMIT 1");

	while (!$rs->EOF)
	{
  		echo $rs->Fields['project_id']->Value."<BR>";
	  	$rs->MoveNext();
	}

This seems to at least kick up no errors up to a point... but
that point is when I try to wind through that loop, and I don't
really know COM objects well enough to troubleshoot this.

Any ideas what the right best way to do this is? I'd prefer to
use the mssql functions if I can...


Thanks,

Weston



To get the mssql_* functions to work you should be able to just include the extension with php.ini


Just look for ;extension=php_mssql.dll , and uncomment it. Be sure to restart Apache afterwards.

I haven't actually tried using mssql with PHP, but I *think* the computer may need some libraries installed before the functions will actually work properly.

Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux