DB server: MSSQL 2000
System: RedHat Linux 8.0
Driver FreeTDS: 0.61
PHP_rev: 4.3.2 (also tried on 4.3.1 gives same problem)
Apache 2.0.46

I'm having a problem with mssql_bind under this configuration it appears not
to be binding variables specified to the stored procedure and I was
wondering
If anyone has come across this before.

I have noted from a post in the user manual from the 27th April '03
(http://uk.php.net/manual/en/function.mssql-execute.php) that there
was a bug in 4.3.2-RC1 for the mssql_bind statement I was wondering
If this could also be causing a problem with the binding to stored
procedures.

I've looked on the bug list and I don't see anything referencing this
problem.

The code we are using is:

$StaffSN = "crl26";

// ****** Init return value ******* //
$ret = 1;

// ****** Set database vars ******* //
$myServer = "sqlserver";
$myUser = "blah";
$myPass = "xxxxxx";
$myDB = "InTime";
// ****** Link to database ******* //
$serverLink = mssql_connect($myServer, $myUser, $myPass) or die("Could not
connect to SQL Server on $myServer");

$db = mssql_select_db($myDB, $serverLink) or die("Couldn't open database
$myDB");

// ****** Query for user details ******* //
$query = mssql_init("sp_StaffDetail", $serverLink);
mssql_bind($query, "@ShortName", $StaffSN, SQLVARCHAR);
mssql_bind($query, "RETVAL", $ret, SQLINT4);
$result = mssql_execute($query);

The execute gives the error:
Warning: mssql_execute(): message: Procedure 'sp_StaffDetail' expects
parameter '@ShortName', which was not supplied. (severity 16) in
/home/shares/staffweb/index2.php on line 46

Warning: mssql_execute(): stored procedure execution failed in
/home/shares/staffweb/index2.php on line 4

I have turned on Debug output on FreeTDS and it seems to show the stored
procedure being called
without any bound variables (as indicated by the error from PHP)

I'm not quite sure if it is PHP not binding the variables or FreeTDS
ignoring them, but by the post in the PHP
manual (http://uk.php.net/manual/en/function.mssql-execute.php) this was
working previously with
FreeTDS 0.61 so I can only assume it's either PHP, a coding error by the
developer, or a set-up problem with FreeTDS.

Does anyone have any ideas?

Many thanks

Andrew Masterton

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

Reply via email to