|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
  [2005-12-16 11:00 UTC] frodriguez at isastur dot es
 Description:
------------
I have Apache, PHP 5.1.1 rebuilding with the mssql extension instead of the sybase extension and FreeTDS 0.63.
Note that the problem is in LINUX S.O. not in W2000 Server like in many other bug reports.
I try to execute a stored procedure site in a W2000 Server with SQL Server 2000 SP3.
The stored procedure haven't any parameter.
If I use mssql_query() work's correctly but if I use mssql_init() and mssql_execute the error take place.
The stored procedure do nothing, it's only for test purposes.
Thanks a lot.
Reproduce code:
---------------
echo "<BR>INICIANDO<BR>";
echo "<br>CONECTADO<br>";
$c = mssql_connect ('XXX.XXX.XXX.XXX', 'user', 'pwd');
if (mssql_select_db ("DATABASENAME", $c) == true)
{
  //mssql_query("EXEC Test", $c);  
  $p = mssql_init("Test", $c);
  $result = mssql_execute($p);
  if (!$result)
  {
    $message = "Last message from SQL : " . mssql_get_last_message() . "";
    echo $message;
  }
  else;
}
else;
echo "<br>FINALIZANDO<br>";
Expected result:
----------------
Execute the stored procedure "Test"
Actual result:
--------------
INICIANDO
CONECTADO<--
Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in /usr/local/httpd/htdocs/FRF_Pruebas/PruebaExecute.php on line 15
Ultimo mensaje desde SQL : Changed database context to 'DATABASENAME'.
FINALIZANDO
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             | |||||||||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 12:00:01 2025 UTC | 
Thanks a lot to Maxime MARAIS to solve my problem. The solution is: I'm connecting to a SQL Server using an IP address. The default TDS version used by freetds is less than 8.0. Version 8.0 is mentionary in order to execute stored procedures. So, I have to modify the freetds.conf to something like this : # My Microsoft SQL Server 2000 configuration [TheNameYouWant] host = XXX.XXX.XXX.XXX ; Your MSSQL Server IP adress port = 1433 tds version = 8.0 In my PHP code, then I use the following : $c = mssql_connect ('TheNameYouWant', 'user', 'password'); Thanks "egein" to Maxime MARAIS