11

我的列的名称具有结构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'");

但是,上述方法均无效。为什么?

4

2 回答 2

18

因为这也是database.table.column. 你必须像这样引用它们

`nameUser.name`

虽然真的,如果你创建/设计了数据库,你不应该使用这样的列名。这只是一个可怕的想法。

于 2012-04-19T13:39:14.897 回答
11

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

像这样:

mysql_query("UPDATE Industries SET `nameSome.User`='$name' WHERE id='$id'");
于 2012-04-19T13:37:52.337 回答