我正在尝试学习编写查询的最佳方法。 我也理解保持一致的重要性。 到现在为止,我已经随机使用单引号,双引号和反引号而没有任何实际想法。
例:
$query = 'INSERT INTO table (id, col1, col2) VALUES (NULL, val1, val2)';
此外,在上面的示例中,考虑table,col1,val1等可以是变量。
这是什么标准? 你是做什么?
我一直在这里阅读类似问题的答案大约20分钟,但似乎没有明确答案这个问题。 sub>
请注意,这是一个特定于MySQL的问题。 一般而言,SQL(即ISO / ANSI SQL)具有不同的引号集:双引号用于分隔标识符,例如, "tablename",单引号用于文字,例如'this is a some text'。 反向标记从不在标准SQL中使用。 (如果需要在标识符中包含双引号,请将其键入两次"odd""tablename"。同样,文字中的双引号,如'Conan O''Brien'。)
反引号用于表和列标识符,但仅在标识符是MySQL保留关键字时,或者当标识符包含空格字符或超出有限集的字符时才需要(见下文)。通常建议避免使用保留关键字尽可能作为列或表标识符,避免引用问题。
单引号应该用于VALUES()列表中的字符串值。 MySQL也支持双引号用于字符串值,但单引号被其他RDBMS更广泛地接受,因此使用单引号而不是双引号是一个好习惯。
MySQL还希望DATE和DATETIME文字值单引号为&