[TYPO3-core] RFC: #12220: string literals quoted as identifiers in class.t3lib_loaddbgroup.php when using MySQL ANSI mode

Xavier Perseguers typo3 at perseguers.ch
Tue Oct 13 12:24:16 CEST 2009


Hi Patrick,

+1 by reading.

Patrick Broens wrote:
> Hi,
> 
> this is a SVN patch request.
> 
> Type: Bugfix
> 
> Bugtracker references:
> http://bugs.typo3.org/view.php?id=12220
> 
> Branches: Trunk
> 
> Problem:
> When using MySQL ANSI [1] mode, some mm_relations queries will not work
> because string literals are quoted with double quotes instead of single
> quotes.
> This is producing errors in the DBAL as well, when working with, for
> instance, an Oracle database.
> 
> Example:
> When deleting a mm_relation a tt_news record (page or other news record)
> the following SQL is generated by the DBAL for Oracle:
> DELETE FROM "tt_news_related_mm" WHERE "uid_local" = 21 AND
> ("tablenames" = "tt_news" AND "uid_foreign" = 21)
> 
> The part "tablenames" = "tt_news" is not correct, because tt_news is
> seen as an identifier by Oracle, because of the double quotes. For
> string it must be quoted with single quotes, like
> DELETE FROM "tt_news_related_mm" WHERE "uid_local" = 21 AND
> ("tablenames" = 'tt_news' AND "uid_foreign" = 21)
> 
> Solution:
> Substitute the double quotes in class.t3lib_loaddbgroup.php with single
> quotes.
> 
> Notes:
> This is DBAL related as well
> 
> Patrick
> 
> [1]
> http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode_ansi_quotes
> 


-- 
Xavier Perseguers
MVC ExtJS Leader

http://forge.typo3.org/projects/show/extension-mvc_extjs


More information about the TYPO3-team-core mailing list