Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

php mssql extension on wamp

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
  1. ntwdblib.dll is the correct version (2000.80.194.0)

  2. 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)

  3. I've downgraded back to wampserver 2.1e & php 5.3.1 (some people got it working like this)

  4. there are no errors on the apache_error.log when I restart the wamp server

  5. installing freetds on my machine hangs apache

  6. 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? :(

like image 251
Pedro Araujo Jorge Avatar asked Nov 04 '22 03:11

Pedro Araujo Jorge


1 Answers

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);
}
like image 184
J-Dizzle Avatar answered Nov 08 '22 09:11

J-Dizzle