ZF-27: the Zend framework doesn't currently quote the column names in it's (My)SQL queries (TRAC#9)

Issue Type: Bug Created: 2006-06-19T22:50:04.000+0000 Last Updated: 2007-07-05T14:43:06.000+0000 Status: Resolved Fix version(s): Reporter: Zend Framework (zend_framework) Assignee: Gavin (gavin) Tags: - Zend_Db

Related issues: - ZF-1



For you guys to ponder: the Zend framework doesn't currently quote the column names in it's (My)SQL queries. This gives issues when using "special" characters in those names and thus I found myself haphazardly adding them: From: Zend/Db/Select.php

<pre class="highlight">
    public function __toString()
        //unchanged parts
        // add columns
        /** WH: Updated to quote column names in back-ticks (`). Needed for '-' in a column name.
         * Note that I am not sure how databases other than MySQL respond to those back-ticks.
         * Note also how - probably inefficiently - the select is for all columns by name, rather than *.
         * @todo: find a way to do this without altering the library code.
        if ($this->_parts['cols']) {
            $sql .= '`'. implode("`,\n\t`", $this->_parts['cols']) . "`\n";
        //more unchanged parts

If this affects other database systems differently than MySQL, then I dunno how / where this had best be done. If it doesn't hurt any of them, then please implement right away. :D I'm very exited about this development. PHP really lacks a "master" framework (like Ruby's Rails or some of Java's frameworks). I think the future success of the language rides on it (now that PHP5 already covers most other wishes). With kind regards, Wim Heemskerk


Posted by Zend Framework (zend_framework) on 2006-06-19T22:50:22.000+0000

05/05/06 19:43:49: Modified by gavin

Also, the same problem arises in MySQL when column names use reserved words (e.g. timestamp).

Right or wrong, phpMyAdmin permits this, and some people do this. 06/03/06 04:36:47: Modified by mike

See also #92, issue is not limited to MySQL. 06/06/06 08:00:31: Modified by tony at

The same issue also applies to using reserved words (e.g. 'group') as table names in MySQL. Line 80 of Db/Adaptor/Pdo/Mysql.php should be changed from:

$sql = "DESCRIBE $table";


$sql = "DESCRIBE $table";

06/12/06 05:48:50: Modified by Link

Posted by Darby Felton (darby) on 2006-06-20T12:21:39.000+0000

Duplicates ZF-1

Have you found an issue?

See the Overview section for more details.


© 2006-2018 by Zend, a Rogue Wave Company. Made with by awesome contributors.

This website is built using zend-expressive and it runs on PHP 7.