ID:               25859
 Updated by:       [EMAIL PROTECTED]
 Reported By:      mfelden at gsd-web dot de
-Status:           Open
+Status:           Bogus
 Bug Type:         *General Issues
 Operating System: windows 2000 server
 PHP Version:      4.3.2
 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

I'm assuming the select query gets a lot of data: since dbx_query
retrieves and buffers all data this could lead to a very long execution
time.
If this is not the case, please re-open this bug report.
Otherwise, read on:

First: alter your sql statement to only retrieve fields you actually
need, such as 'field' and 'id'. Don't use * in a select statement.

Second: your query() function is not very efficient: it would be much
better to put the dbx_connect() and dbx_close() calls outside the
function, preferably at the beginning and end of the script or perhaps
the get_data() function. And when you do that you might as well skip
the query() function definition altogether :-)

If you are retrieving a lot of records, the new version of dbx_query()
(in CVS only) has support for the DBX_RESULT_UNBUFFERED flag where you
can retrieve data record by record, which is probably what you want as
it is a lot more efficient.

If you are unable to get the CVS version, perhaps you should use the
mysql_unbuffered_query() directly...



Previous Comments:
------------------------------------------------------------------------

[2003-10-14 06:00:28] mfelden at gsd-web dot de

Description:
------------
PHP is running on the local http-server IIS. A script loaded in IE 5
causes a new instance of php.exe running on the server. It instantly
consumes 100% of the cpu power. This blocks the server, so the query
could not be completed. The IIS sends a Timeout after 30 seconds. I
can't change it, due to the MMC which says, there is no IIS. Even after
closing the IE-Window php.exe is consuming 100% of the cpu power for
the next say 5 minutes. During this php.exe dis- and appears in the
process list again and again. In php.ini php_iisfunc.dll is commented
out.

It is no fun.

Reproduce code:
---------------
<html><head><title>Import</title></head>
<body><h3>Daten holen</h3>
<form action='daten.php' method="POST">
  <input name=ok type=submit value=OK>
</form></body></html>
<?php 
if($_POST['ok']){get_data();}
function get_data()
{ 
  $query =  "SELECT * FROM corpus WHERE gms is not null and id>590 and
id<691";        
        $result = query($query, $source);

        for($i = 0; $i < $result->rows; $i++)
        {
    $query = "UPDATE corpus SET strasse ='" .
$result->data[$i]['field'] . "' WHERE id = " .
$result->data[$i]['id'];
        query($query);
                }               
        }    
}
function query($query)
{
  $link = dbx_connect (DBX_MSSQL, "1.2.3.4", "db", "user", "pwd",
DBX_PERSISTENT| DBX_RESULT_INFO) or die ("Fehler beim Verbinden");      
  $result = dbx_query($link, $query);
  dbx_close ($link);
  return $result;
}
?>


Expected result:
----------------
Query completed

Actual result:
--------------
Timeout after 30 sec


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=25859&edit=1

Reply via email to