Hi,
Olivier Bonvalet wrote:
Hello,

I often host clients which have "bad" PHP/SQL code ; as for example
a "select *" + mysql_row_nums on a 200Mo table just to count lines...

So I add a little patch to throw a warning in case the result of mysql_query
is larger than a specified limit.
I use the setting "mysql.min_stored_data_before_warn" in php.ini, and the
result is :
[30-Mar-2008 04:39:56] PHP Warning: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Your query use too much memory (202636 o) in /path/to/script.php on line 8

This patch seem "usefull" for me as PHP does not report the queries's memory
consumption. But maybe it should be done in mysqli and PDO extensions to ?

I'm not a "C developper", and the patch use the mysql internal struct, so
it's not really "clean". Maybe we can do it differently.

From 5.3 one can compile ext/mysql and ext/mysqli with mysqlnd (comes with PHP) instead of libmysql. mysqlnd uses the Zend MM and thus obeys to the memory limit. You can even download ext/mysql and ext/mysqlnd from a 5.3 source and replace ext/mysql in your source tree. Rebuild configure with buildconf and then configure with --with-mysql=mysqlnd . You get the functionality with 5.2 then too. Using mysqli with 5.2 needs a small Zend patch (backport of 2 files from 5.3 due toe mysqli's persistent connections).

Thanks

Olivier

PS : sorry for my limited english.


Regards,
Andrey

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to