php-为什么在mysql表中插入一个空行

时间:2014-05-28 16:57:28

标签: php

美好的一天。我使用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 ('','','','','','','','','') 

1 个答案:

答案 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

要获得更正确和详细的答案,最好查看执行上述操作的代码。

相关问题