[TYPO3-core] RFC #11108: DBAL wildly quotes fields and table names
Xavier Perseguers
typo3 at perseguers.ch
Mon May 18 00:09:17 CEST 2009
> Problem:
> When issuing a query using $GLOBALS['TYPO3_DB']->exec_SELECTgetRows()
> method for instance, the actual query being generated has all fields
> quotes with the proper quote for the selected DBMS.
>
> This is however done in a fully uncontrolled manner as all stuff get
> quoted resulting in invalid SQL query being issued to the actual DBMS.
> E.g., using a MSSQL backend, a query is like this:
>
> SELECT "Field1", "Field2" FROM "MyTable" WHERE "Uid" = 1234
>
> and that does not work, MSSQL complains that it cannot parse the query
> (at least with ADOdb because using Query Analyzer, the query is
> performed successfuly).
Documentation on p. 9 states this:
MSSQL
Tests have shown you need to
enable ANSI quotes (SET QUOTED_IDENTIFIER ON). This can also be done
through the management console:
MS SQL Server Managment Studio (Express) -> Choose DB (context menu) ->
Properties -> Options -> Miscellaneous / Quoted Identifiers Enabled : true.
However, I find it a quick and very dirty workaround when there is an
official solution to this problem.
> Solution:
> Use ADOdb built-in function to quote fields and table names and... as it
> performs a few tests to decide whether quoting is needed or not.
--
Xavier Perseguers
http://xavier.perseguers.ch/en
One contribution a day keeps the fork away
More information about the TYPO3-team-core
mailing list