我的列名称的结构为nameUser.Name
,但我在更新它们时遇到问题。我试过几种可能性:更新名称中包含圆点(。)的MySQL列
// 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'");
非,但是。为什么?
在附注上,小心你不会因[SQL注入攻击](http://en.wikipedia.org/wiki/SQL_injection#Incorrectly_filtered_escape_characters)而变得容易受到攻击。 – Jeroen 2012-04-19 13:41:52
对于您的问题,您可能需要引用列名称,答案可能在[此MySQL文档](http://dev.mysql.com/doc/refman/5.5/en/identifiers.html)中找到,乍一看,我会说MySQL需要在包含句点字符的列名周围使用反引号(如果允许使用ANSI变体,则需要双引号)。 – Jeroen 2012-04-19 13:45:06