It does work like that, (if you change mssql_execute to mssql_query), but the developer wants the return value from the stored procedure. >From what I can tell there is no way to get it by executing stored procedures with mssql_query. -----Original Message----- From: colbey@dreamwerx.net [mailto:colbey@dreamwerx.net] Sent: 21 July 2003 13:51 To: A.J.Masterton Cc: 'php-db@lists.php.net' Subject: Re: mssql_bind problem.... I used to use MSSQL.. I've always called the stored procedures like you would call any method/function.. Have you tried just: > // ****** Query for user details ******* // > $query = "sp_StaffDetail $var1, $var2"; > $result = mssql_execute($query); On Mon, 21 Jul 2003, A.J.Masterton wrote: > 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 > -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php