美好的一天。我使用php从excel文件中读取数据,然后将它们插入到mysql表中。一切都运作良好,但在表格中插入了一个额外的空行,这导致我得到了
#1062 error, duplicate entry ' ' for key primary
。
我想如何解决这个问题?谢谢。
这些是代码......
$DBconnect = mysqli_connect("localhost","root","","lala") Or die("<p>unable to connect</p>") ;
$sql="INSERT INTO temp(COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9) VALUES ('$call','$corporate','$isbn','$author','$title','$publication','$description',' $subject','$url')";
$result = mysqli_query($DBconnect,$sql) Or die('Error, query failed');
修改:
我添加后的结果
echo $sql;
$result = mysqli_query($DBconnect,$sql) Or die('Error, query failed');
是这两行
INSERT INTO `temp`(`COL_1`, `COL_2`, `COL_3`, `COL_4`, `COL_5`, `COL_6`, `COL_7`, `COL_8`, `COL_9`) VALUES ('','','','','','','','','')
答案 0 :(得分:0)
我建议的快速解决方案是在插入数据库之前验证数据。
如果您的主键是行中的第一个元素 - 以下代码是一个示例:
// read from excel to $data array here
$verifiedData = [];
foreach($data as $row) {
if (!empty($row[0])) {
$verifiedData[] = $row;
}
}
// insert data from $verifiedData array to database here
要获得更正确和详细的答案,最好查看执行上述操作的代码。