WebTechKitchen; Your Web Technology Kitchen, contact us to create, or maintain your websites and other digital properties.

Setup for running stored procedures and sql from php / ubuntu on sql server

Submitted by barnettech on Fri, 04/15/2011 - 10:15

1.)

sudo apt-get install php5-sybase

2.)

sudo /etc/init.d/apache2 restart

3.) Third you need to do this: (copied from the internet -- tested it and it works, it will allow you to run stored procs)

“Figured it out...

In researching the problem before posting I saw references to configuration changes needed to FreeTDS, but apparently I was implementing the change wrong, but that is the solution.

  - Edit /etc/freetds/freetds.conf
  - Edit the section for MSSQL server
     - Replace the given section name with something meaningful (we'll say MyServer for this example)
     - Enter the IP and port (1433)
     - Change the version to 8.0
  - Restart Apache
  - When connecting to the server (the $conn statement in my example), use the section name that you used in the conf file (MyServer)
     - This is the part I was missing when trying to figure out the problem before I posted. I edited the conf file, but was not using the section name to connect.
  - Executing the SP will now work.

I've testing this on a clean Ubuntu 9.04 installation following the "reproducting the issue" instructions I provided above and it works like a charm.

Argh...I'd like those hours of my life back now...”

4.) This code ran successfully on the server:

<?php
ini_set('display_errors', 1);
$server = 'MYSERVER';
$link = mssql_connect($server, 'USERNAME', 'MYPASSWORD');
if (!$link) {
die ("Could not connect to database: ".mssql_get_last_message());
}
else {
$selected = mssql_select_db('lynx', $link) or die('cant connect the sql server '.mssql_error());
echo "connected to databasename
"; $result = mssql_query("SELECT COUNT(*) as count FROM tbl_network_account"); while($row = mssql_fetch_array($result)) echo $row["count"] . "
"; } $network_id = 'aliss'; $stmt = mssql_init('usp_app_msgcenter_faculty_portal_announcements'); mssql_bind($stmt, '@network_id', &$network_id, SQLVARCHAR, false, false, 50); $proc_result = mssql_execute($stmt) or die('MSSQL error message is: ' . mssql_get_last_message()); mssql_free_statement($stmt); $row = mssql_fetch_assoc($proc_result); print_r($row); ?>