[PHP-DEV] PHP 4.0 Bug #6861: Intermittent Error Message appearing (possible memory leak?) From: andy <email protected>
Date: 09/23/00

From: andy <email protected>
Operating system: Win 2000
PHP version: 4.0.2
PHP Bug Type: ODBC related
Bug description: Intermittent Error Message appearing (possible memory leak?)

I get the following ODBC Error:
"Warning: SQL error: [Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt, SQL state S1000 in SQLExecDirect in
Sample Source"

but only if the print statement
before the odbc_exec() calling the stored procedure sp_textcopy is there or if I assign its result to a variable
i.e. $qryid=odbc_exec("sp_textcopy....") (See source below)

The message also appears erratically in another script of mine where i call a preg_replace() and ONLY if I assign the result of the preg_replace to a variable (it can be a dummy variable and have nothing to do with the rest of the script). Moreover, it only happens with preg_replace() and not with preg_match(). The error also disappears(!) if i do an ODD number of strlen($submission) before the odbc_exec() or if i remove the $submission variable from the odbc_exec() string. Also, the stored procedure seems to need to have an EXEC statement before the error will show up and should have a lot of variables passed to it.

In the script below, removing the first <input> tag will also cause the error to disappear.

All in all nothing seems to make sense, this sort of bug looks suspiciously like a memory leak to me.

My ODBC driver is SQL Server 3.70.08.20

<?php
header("Cache-Control: no-cache, invalidate");
header("Pragma: no-cache");
?>
<html>
<body>
<?php
  if ( $type ) {
    $link=odbc_connect("HEECHEE-ODBC","webpage","");
    odbc_exec($link,"use sampledb");
    odbc_exec($link,"insert into table1 (row2)
                      values ('dummy')");
    $qryid=odbc_exec($link,"sp_textcopy  <email protected>
                            = 'webpage'");
    $qryid=odbc_exec($link,"select * from table1");
    print odbc_exec($link,"sp_textcopy  <email protected> = ''");
  }
?>
  <form method=POST action="test.php">
  <input type="text" name="type" value="article">
  <input type="submit" value="Upload">
  </form>
</body>
</html>

Transact-SQL Stored Procedure
------- BEGIN -------
CREATE PROCEDURE sp_textcopy (
   <email protected> varchar (30)
)
AS
EXEC master..xp_cmdshell "dir H:\\winnt\\system32"
-------- END --------

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>