From the MySQL language manual:
6 MySQL Language Reference
6.1.1 Literals: How to Write Strings and Numbers
6.1.1.1 Strings
A string is a sequence of characters, surrounded by either single quote ('') or double quote ("') characters (only the single quote if you run in ANSI mode). Examples:
'a string'
"another string"
There are several ways to include quotes within a string:
* A `'' inside a string quoted with `'' may be written as `'''.
* A `"' inside a string quoted with `"' may be written as `""'.
* You can precede the quote character with an escape character (`\').
* A `'' inside a string quoted with `"' needs no special treatment and need not be doubled or escaped. In the same way, `"' inside a string quoted with `'' needs no special treatment.
Note that if the identifier is a restricted word or contains special characters you must always quote it with a ` (backtick) when you use it:
mysql> SELECT * FROM select WHERE select.id > 100;
SQL is an abstact, not a language. Database developers create instances of the abstract and establish the rules of their query language. In MySQL (which I assume the majority of PHP users are accessing), single quotes, double quotes may be used for strings.
If you try to use the "rule" you posted, using single quotes for identifiers, your MySQL query will return a string:
SELECT "create_date" FROM table1
returns: create_date
SELECT 'create_date' FROM table1
returns: create_date
SELECT create_date FROM table1
returns: 2007-06-22
Your determination to demand that the questioner follow SQL standard can very easily cause the questioner to experience unneeded code breakage and frustration. You might have at least asked what database language the questioner was using before stating the "rule".