使用PHP+Ajax导入XML到MySQL表时Con-1表名报错求助
解决MySQL表名含特殊字符(Con-1)的PHP操作问题
嘿,这个问题我之前也碰到过!问题出在你的表名Con-1里的连字符-上——MySQL会把这个符号当成减法运算符来解析,所以它根本不会把Con-1认成一个完整的表名,自然就抛出错误了。
快速修复方案
在SQL语句中,把包含特殊字符的表名用**反引号()**包裹起来,反引号就是键盘上数字1`左侧的那个符号。举个例子:
假设你原来的代码是这样的(错误写法):
$sql = "INSERT INTO Con-1 (xml_data, upload_time) VALUES ('$xmlContent', NOW())";
修改成正确的写法:
$sql = "INSERT INTO `Con-1` (xml_data, upload_time) VALUES ('$xmlContent', NOW())";
只要给Con-1加上反引号,MySQL就能正确识别这是一个表名,而不是表达式Con - 1了。
额外建议
如果你的项目还处于初期阶段,建议把表名改成Con_1这种用下划线替代连字符的形式。这样后续编写SQL语句时,不用每次都记得加反引号,能避免很多类似的语法错误,也更符合数据库命名的常规规范。
内容的提问来源于stack exchange,提问作者Sandy Hartak
相关产品推荐
相关产品推荐

