Php 无法在列名中插入包含冒号的列

Php 无法在列名中插入包含冒号的列,php,mysql,sql,Php,Mysql,Sql,我试图在语句中插入列名为00:18:e7:f9:65:a6的列 ALTER IGNORE TABLE tblwifi_information ADD "00:18:e7:f9:65:a6" INT …但它抛出了一个错误: /* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right s

我试图在语句中插入列名为00:18:e7:f9:65:a6的列

ALTER IGNORE TABLE tblwifi_information ADD "00:18:e7:f9:65:a6" INT 
…但它抛出了一个错误:

/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"00:18:e7:f9:65:a6" INT' at line 1 */
在HeidiSQL中。我正在使用MySQL数据库


当我试图手动将列b添加到表的结构中时,它可以工作并且不会给出任何错误,但是当我运行此语句时,它不允许我这样做。如何解决此问题?

我刚刚运行了您的查询:

ALTER IGNORE TABLE tblwifi_information ADD "00:18:e7:f9:65:a6" INT 
得到了同样的错误。然后我跑:

ALTER IGNORE TABLE tblwifi_information ADD `00:18:e7:f9:65:a6` INT 
它成功了。很确定你需要改成`

双qoutes失败:

反勾号成功:
我刚刚运行了您的查询:

ALTER IGNORE TABLE tblwifi_information ADD "00:18:e7:f9:65:a6" INT 
得到了同样的错误。然后我运行:

ALTER IGNORE TABLE tblwifi_information ADD `00:18:e7:f9:65:a6` INT 
它成功了。很确定你需要改成`

双qoutes失败:

反勾号成功:

对columnname使用反勾号

改变

ALTER IGNORE TABLE tblwifi_information ADD "00:18:e7:f9:65:a6" INT 


对columnname使用反勾号

改变

ALTER IGNORE TABLE tblwifi_information ADD "00:18:e7:f9:65:a6" INT 


我真的不知道你想在这里得到什么,朋友。 而不是:

00:18:e7:f9:65:a6

然后调整您的代码,将php或mysql中的“:”替换为“\”

在sql中:

Replace(table_name, ':', '_');
srt_replace(':','_',$query);
在PHP中:

Replace(table_name, ':', '_');
srt_replace(':','_',$query);

我真的不知道你想在这里得到什么,朋友。 而不是:

00:18:e7:f9:65:a6

然后调整您的代码,将php或mysql中的“:”替换为“\”

在sql中:

Replace(table_name, ':', '_');
srt_replace(':','_',$query);
在PHP中:

Replace(table_name, ':', '_');
srt_replace(':','_',$query);

要向故事中添加内容,在查询多个表时,必须使用以下表达式:

`tablename`.`columnname`
(不是“tablename.columnname”)

我花了一些时间才弄明白,所以我希望它能帮助别人:)

例如:

SELECT * 
FROM tb_product p
JOIN tb_brand b ON (  `p`.`tb_brand:IDbrand` =  `b`.`IDbrand` ) 
WHERE IDfamily = 2

要向故事中添加内容,在查询多个表时,必须使用以下表达式:

`tablename`.`columnname`
(不是“tablename.columnname”)

我花了一些时间才弄明白,所以我希望它能帮助别人:)

例如:

SELECT * 
FROM tb_product p
JOIN tb_brand b ON (  `p`.`tb_brand:IDbrand` =  `b`.`IDbrand` ) 
WHERE IDfamily = 2

你试过用反勾吗?i、 e.
`
而不是
围绕标识符?可能重复为什么要使用mac/ipv6创建列?地址你是如何手动操作的?你需要离开,重新审视你的数据库结构,并请保存我们对标准化数据库结构的理智阅读。你是否可以使用反勾号进行尝试?i、 e.
`
而不是
围绕标识符?可能重复为什么要使用mac/ipv6创建列?地址你是如何手动完成的?你需要离开,重新审视你的数据库结构,并请保存我们关于规范化数据库结构的理智阅读。嗯,我不确定,但我怀疑这可能与你的php有关,而不是查询本身。如果您还没有这样做,我会尝试用php执行另一个非常基本的查询,比如
SELECT*FROM…
,以确认您的数据库连接正常。嗯,我不确定,但我怀疑它可能与您的php有关,而不是查询本身。如果您还没有这样做,我会尝试用php执行另一个非常基本的查询,比如
SELECT*FROM…
来确认您的db连接正常工作。