使用Perl读取excel(.xls)文件,然后导入数据库,一直出现如下问题,用短的测试也没有问题,苦恼了一天==,根据错误提示把提示的某些项删掉测试,发现只要有Function就一条都插入不进来,单独update它也不行,试来试去最后发现,这原来是SQL里的一个函数,是个关键字,所以不能用语句对其进行插入。
错误描述:
DBD::mysql::st execute failed: 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 ‘Function, Reference,
Sequence, Length, MolecularWeight, StructureVa’ at line 3 at E:\Bioinformatics\PaCRISPR\perl-data-test\Spreadsheet-ParseExcel-0.59\examples\read_insert.pl line 120.
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 ‘Function, Reference,
Sequence, Length, MolecularWeight, StructureVa’ at line 3 at E:\Bioinformatics\PaCRISPR\perl-data-test\Spreadsheet-ParseExcel-0.59\examples\read_insert.pl line 120.
两种解决方法:
- 把Function关键字换掉,别用这个名字了。
- 语句中关键字使用
'Function'
将其括起来,符号是键盘~下边那个引号,不是平时使用的那个,要注意一下。正确代码如下图所示。
最后附上关键字的一个连接:http://www.postgres.cn/docs/9.3/sql-keywords-appendix.html
PS:下章参考一下Perl读取excel插入mysql数据库的代码~