[TYPO3-core] Fix for "debug_check_recordset" in t3lib_db

Martin Kutschker Martin.Kutschker at n0spam-blackbox.net
Thu Sep 6 08:47:07 CEST 2007


Bernhard Kraft schrieb:
> Hallo !
> 
> 
> This is a SVN patch request.
> 
> Branch: Trunk
> 
> Problem:
> In class.t3lib_db.php there is a new method introduced which performs 
> checks if the result-resource variable which is used for fetching rows (using 
> ->sql_fetch_assoc and similar) is checked if it is set.
> Even if the variable contains for example a numeric "1" the check would 
> not fail and would give a mysql-error afterwards.

If you really want to have a strict check for the resource, the check 
shouldn't be in a debug fuction.

debug_check_recordset() tells the caller if there is a problem (it returns 
FALSE), yet this is not even used.

eg

function sql_fetch_row($res)    {
   $this->debug_check_recordset($res);
   return mysql_fetch_row($res);
}

This should, if we want to be save, more like that

function sql_fetch_row($res)    {
   if ($this->check_mysql_result($res)) {
     return mysql_fetch_row($res);
   } else {
     return FALSE;
   }
}

> Additionaly the query which failed isn't logged to devLog - which would 
> (in my opinion) be another good feature helping debug.

This may or may not be the query that caused the problem. The functions may 
be called in a wrong order or none of the query building functions could be 
involved. The class lacks a lastQueryUsed varaiable. *

Masi

* In fact the class needs to be split up: connection/utilities, query, result.


More information about the TYPO3-team-core mailing list