反引号用于表和列标识符,但是仅当标识符是MySQL保留关键字时,或者当标识符包含空格字符或超出限制集的字符时才需要使用反引号(请参见下文)。通常建议避免使用保留关键字在可能的情况下用作列或表的标识符,从而避免引用问题。
单引号应用于VALUES()
列表中的字符串值。MysqL还为字符串值支持双引号,但是单引号已被其他RDBMS广泛接受,因此使用单引号而不是双引号是一个好习惯。
MysqL还希望DATE
和DATETIME
文字值可以像字符串一样单引号'2001-01-01 00:00:00'
。有关更多详细信息,请查阅日期和时间文字文档,尤其是-
在日期字符串中使用连字符作为分段定界符的替代方法。
因此,使用您的示例,我将对PHP字符串加双引号,并在values上使用单引号'val1', 'val2'
。NULL
是MysqL关键字,是一个特殊的(非)值,因此未加引号。
这些表或列标识符都不是保留字,也不使用需要引号的字符,但是无论如何我都用反引号将它们引号(稍后再说……)。
RDBMS的本机函数(例如,Now()
在MysqL中)不应被引用,尽管它们的参数要遵循已经提到的相同的字符串或标识符引用规则。
反引号(`)
表格和列────────┬──────┬──┬──┬──┬────┬──┬────┬──┬──┬────┬──┬ ────────┐
↓↓↓↓↓↓↓↓↓↓↓↓
$ query =“ **插入表中(id,col1,col2,date,updated)
值(NULL,'val1','val2','2001-01-01',Now())** “;
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
未引用的关键字──────┴┴┴┘││││││││││││
单引号(')字符串────────────┴────┴──┴──────││││││││
单引号(')日期────────────┘││││ │
未引用的函数──────────────────┴┴┴┴┘