更新名称中包含点(。)的MySQL列

时间:2012-04-19 13:37:04

标签: php mysql

我的列名称的结构为nameUser.Name,但我无法更新它们。我尝试了几种可能性:

// Ideally, I'd like to do this (since the User.Name is 'dynamic', ie, it depends
// on who is logged in):
$userLogged = 'Some.User';
$columnName = 'name' . $userLogged;
mysql_query("UPDATE Industries SET '$columnName'='$name' WHERE id='$id'");
// Another try:
mysql_query("UPDATE Industries SET $columnName='$name' WHERE id='$id'");
// Alternatively, if the above cannot be achieved:
mysql_query("UPDATE Industries SET 'nameSome.User'='$name' WHERE id='$id'");
// Yet another try:
mysql_query("UPDATE Industries SET nameSome.User='$name' WHERE id='$id'");

然而,不是上述作品。为什么呢?

2 个答案:

答案 0 :(得分:16)

因为这也是database.table.column的语法。你必须引用它们像

`nameUser.name`

尽管如此,如果你创建/设计了db,你绝不应该使用这样的列名。这只是一个可怕的想法。

答案 1 :(得分:7)

不使用单引号作为列名,而是使用反引号(在大多数键盘上,位于1键的左侧)。

像这样:

mysql_query("UPDATE Industries SET `nameSome.User`='$name' WHERE id='$id'");