我正在从Excel工作表中插入数据,但是我收到错误,看起来它正在破坏,因为值中包含空格字符。据我记得VARCHAR(200)
这是我正在使用的代码
//CREATE SQL QUERY FOR INSERTING DATA IN DATABASE
$sql = "INSERT INTO ".$month."_".$year."(";
foreach($sheetData[1] as $columnName){
$sql .= preg_replace('#[ ]#', '_',$columnName). ",";
}
$sql = rtrim($sql, ',');//REMOVES COMMA FROM END OF THE STRING
$sql .= ")";
//
$sql .= " VALUES((";
for($i=2;$i < count($sheetData);$i++){
foreach($sheetData[$i] as $columnName){
$sql .= $columnName.",";
}
$sql = rtrim($sql,',');//
$sql .= "),";
}
$sql = rtrim($sql,',');//
$sql .= ")";
echo $sql;
$query = mysqli_query($conn,$sql) or die(mysqli_error($conn));
循环之后,这就是SQL QUERY
看起来
INSERT INTO December_2015(S_No,Zone,State,City2,VM_Town,Distibutor_Code,Distributor_Name,Dealer_Code,Dealer_Name,Category,Address,Location,Contact,Mobile_No,Visit_1,Visit_2,Visit_3,Visit_4,Visit_5,Visit_6) VALUES( (1,South,Telanagana,Hyderabad,Y,1006704,Sai Santhoshi Enterprises,TG000999,Sree Laxmi Mobiles,A,F4,anthem Arcade,gujarathi Galli,koti ,Koti,Rajesh,8790575680,7-Nov,18-Nov,28-Nov))
您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在Santhoshi Enterprises,TG000999,Sree Laxmi Mobiles,A,F4,anthem Arcade,gujarathi G&#39;附近使用正确的语法。在第1行
它之前说'Santhoshi Enterprises ... '
附近有空格字符
答案 0 :(得分:0)
你有两个&#34;(&#34;而不是一个&#34; VALUES&#34;
答案 1 :(得分:0)
Akash,
你之前没有问过一个问题同一个/类似的代码,但是你得到了一个不同的错误:How to loop inside a variable?!
从一般情况来看,你会编写凌乱的代码,而你却无法阅读/理解错误信息。所以我猜你是新手。
以下是一些很好的读物:
说完所有内容后,您的代码将分解为更易读的部分:
Clients
最后你最终会得到这样的结果:
InspectionFrequencies
其他说明和提示:
考虑到您说您正在从Excel工作表中读取数据...如果没有某些测试/检查/验证,请不要信任输入数据。不仅仅是因为安全而是稳定性,而且一般来说,你不想让事情破裂。 那些excel表可以手动制作,这自动意味着它容易出现人为错误,因此你无法100%确定你会得到什么。
考虑使用PDO和预备语句(安全原因,但也是良好做法)