我目前正在为我的OpenCart电子商务商店使用导入/导出模块。
该模块的工作原理是将OpenCart类别和产品数据库导出到excel表中,然后可以编辑和导入。我们决定使用该模块批量导入我们的产品。
前953个产品导入完美之前,我收到以下错误:
Notice: Error: 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 's-NutRageous-Smaller.jpg',1,0.825,0,'2012-11-04 12:56:45','2013-12-01 14:19:41',' at line 1
Error No: 1064
INSERT INTO `oc_product` (`product_id`,`quantity`,`sku`,`upc`,`ean`,`jan`,`isbn`,`mpn`,`location`,`stock_status_id`,`model`,`manufacturer_id`,`image`,`shipping`,`price`,`points`,`date_added`,`date_modified`,`date_available`,`weight`,`weight_class_id`,`status`,`tax_class_id`,`viewed`,`length`,`width`,`height`,`length_class_id`,`sort_order`,`subtract`,`minimum`) VALUES (1060,0,'','','','','','','',5,'Reeses_Nutrageous_Bars_51g',22,'data/Reese's-NutRageous-Smaller.jpg',1,0.825,0,'2012-11-04 12:56:45','2013-12-01 14:19:41','2012-11-03',0.05,1,1,9,1930,1,2,3,'2','1','1','1'); in /var/www/vhosts/localhost.localdomain/americanfizz.info/system/database/mysql.php on line 50
我不认为这是电子表格格式的问题,因为我曾尝试删除“违规”产品,但当它到达第954行时总是失败。
一开始由于数据库的大小,我在导入时遇到了一些问题,但我已经通过在导入时临时将php.ini中的memory_limit调整为-1来解决这个问题。作为参考,我使用的导入脚本可以在这里找到:http://www.opencart.com/index.php?route=extension/extension/info&extension_id=17
2条答案
按热度按时间s5a0g9ez1#
这个错误非常明显(我想你不会问这个问题):
靠近's-NutRageous-Smaller.jpg'
我要说的是,您用来生成这些查询的软件未能使用预准备语句或转义输入;这使得它太笨重而无法使用。
编辑:出于好奇,我快速浏览了一下代码,在upload/admin/model/tool/export.php找到了这个代码:
沿着轨迹向上,这是
$imageName
的来源:...其中
getCell()
是从Excel读取字符串的函数。需要SQL注入攻击的丑陋代码。oyjwcjzk2#
在操作数据库时,您应该使用
sanitize
每个输入参数。