php – 从文本文件导入数据时导致错误的SQL保留关键字

我有以下代码.我正在尝试使用PHP导入一个文本文件sql表,正如本网站上的一个用户所建议的那样.

不幸的是,由于我的文本文件文件中包含“Max和Min”字样,我的导入错误中途.

我试图找出我能做些什么来避免它.我发现的大部分内容都是关于在列名中使用保留字.但我的不是列名作为数据插入列中的列名.

这可以避免,因为我不知道文本文件中有多少其他保留字,我需要每天自动运行我的代码.我不能每次都流产.这是一个巨大的文本文件,所以我不能每次都手动替换关键字.

MysqLi_query("CREATE TABLE IF NOT EXISTS `add_feature_id` (
`id_f` INT(10) unsigned NOT NULL AUTO_INCREMENT,`id_product` INT(10) unsigned NOT NULL,`id_feature` INT(10) unsigned NOT NULL,`value` varchar(255) CHaraCTER SET utf8 COLLATE utf8_general_ci NULL
DEFAULT   NULL,PRIMARY KEY ( `id_f` ) )",$conn);

$fd = fopen('trial.txt','r');
$fheader = fgets($fd); 

while (($data = fgetcsv($fd,"~")) !== FALSE) {
$id_product = $data[0];
$id_feature = $data[1];
$unitval = $data[2];
$value = MysqL_real_escape_string($unitval);

MysqLi_query("INSERT INTO   `add_feature_id`(`id_product`,`id_feature`,`value`) 
VALUES ($id_product,$id_feature,'$value')",$conn) or die(MysqL_error());
}

fclose($fd);

$result = MysqLi_query("SELECT * FROM `add_feature_id`",$conn);
//I print my result here but i get error while insert is executed

我得到的错误

您的sql语法有错误;检查与您的MysqL服务器版本对应的手册,以便在’附近使用正确的语法
最高和最低要求

入门级要求低
Minimu’在第2行

这是我的文本文件的一部分,其中出现错误最大和最小要求,如下面的文本文件中所示

imsKU~AttributeID~Value~Unit~StoredValue~StoredUnit(header row)

1006854 ~ 16257 ~Licensing Program: Max and Min Requirements<ul><li>Low entry level  requirement</li><li>Minimum 1 server (Band S) OR 5 desktop (Band A)</li></ul> ~  ~ 0.00 ~

解决方法

您在第32325行收到了无效数据:

1062708~16257~Express Licensing Program:<ul><li>Targeted at small - medium companies (1-500 units)</li><li>Minimum purchase requirements for licenses</li><li>Includes all Symantec software products</li><li> Certificated-based program - requires no legal review</li><li>Band identified via number of units per transaction</li></ul>
<br />Max and Min Requirements<ul><li>Low entry level requirement</li><li>Minimum 1 server (S-Band) OR 5 desktop (A-H Band)</li></ul>~~0.00~
1062708~16260~2~~0.00~

那条中间线.

它失败的原因是$id_product和$id_feature不是单引号/转义.

你应该做的是准备/执行这个(或摆脱那些无效的数据).

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...