Reputation: 686
I'm trying to get wamp php to communicate with an MsSQL DB but I can't seem to make it work. The current error message I get on the browser (Chrome) is:
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: (...) Couldn't connect to SQL Server
ntwdblib.dll is the correct version (2000.80.194.0)
I can't use php_sqlsrv (the deployment server is linux only, sqlsrv is windows only), although from using sqlsrv I can conclude that the access info is correct (server, user, password)
I've downgraded back to wampserver 2.1e & php 5.3.1 (some people got it working like this)
there are no errors on the apache_error.log when I restart the wamp server
installing freetds on my machine hangs apache
remote machine successfully uses php_mssql.dll (linux server)
The code I'm using:
<?php
$dbhandle = mssql_connect($ip,$user,$pass) or die("Couldn't connect to SQL Server on $ip");
$selected = mssql_select_db($dbname,$dbhandle) or die("Couldn't open database at SQL server: $ip");
?>
I am now going to try a linux virtual machine, but surely even if that works it will be a pain (slow and feature-less).
My system: Windows 7, Wampserver 2.1e, PHP 5.3.1
What else can I try? :(
Upvotes: 5
Views: 21464
Reputation: 3191
Assuming you've tried to get the driver/extension installed from here: http://www.microsoft.com/en-gb/download/details.aspx?id=20098
and you've changed your php.ini
in your *AMP stack's PHP
folder..; and put the mssql extension in the php/ext
folder...
after several hours of looking, this guide successfully got me connected to a MS SQL database. http://webcheatsheet.com/php/connect_mssql_database.php
edit: furthermore my connection class takes DB Uname PW and serverIP as constructor parameters, and the constructor calls function setCon(), so when the object is created the connection is too. then I can call queries on the connection object it in an OOP style
function setCon(){
$conn = mssql_connect($this->server, $this->UName, $this->pw);
if ($conn){
echo "Connection established @ $this->server.$this->DB (Connected to MS SQL DB)\n";
}
else{
echo "Connection could not be established.";
die( print_r( sqlsrv_errors(), true));
}
and then later this is needed to access the connection created
function getCon(){
return mssql_connect($this->server, $this->UName, $this->pw);
}
Upvotes: 2
Reputation: 1
Actualy by default wampserver doesn't come with php_mssql.dll the extension is made on top of php_pdo_mssql or php_dblib. Tested on x64 wampserver 2 PHP 5.3.13
Using php_pdo_mssql
Using php_dblib
Warning do not activate both php_pdo_mssql and php_dblib.
On different versions of php wampserver works different on 5.3.1 first solution worked for me but on 5.3.13 second.
Upvotes: 0
Reputation: 76619
Unable to connect to server: (...) Couldn't connect to SQL Server"
Did you install any driver module within PHP for MS-SQL ??
Besides a VM isn't necessarily slow and featureless - at least it works :)
MDB2 or PDO might be most suitable for abstracting the database I/O.
Q: Can you open a terminal to MS-SQL, e.g. Telnet??
(This would at least sort out any kind of connectivity issues).
You might need this module here: PECL odbtp >= 1.1.1 (open database transport protocol)
extension=php_mssql.dll
^ also, checkout phpinfo() once if this extension is even loaded.
http://www.php.net/manual/en/mssql.installation.php
Well - installing mySQL on Windows wouldn't be any problem (in case that would make sense).
Upvotes: 0