Php Can';即使未启用PK或唯一值,也不能将重复数据添加到sql表中

Php Can';即使未启用PK或唯一值,也不能将重复数据添加到sql表中,php,mysql,file,insert,Php,Mysql,File,Insert,我有一个txt文件,其中有一行\t数据,文件中的数据通过一个循环更新,在这个循环的最后,它被放入一个表中。我正在处理的当前数据有24列25行,除了第一个值相同的两行之外,它输入的数据都很好;其中只有1个被输入 我没有任何设置为主键或唯一值启用,但它只是没有以相同的第一个值进入行,即使值3、4和5也是相同的 以下是完整的代码: <?php $conn = mysql_connect('localhost', 'root', ''); mysql_select_db('amazondb', $

我有一个txt文件,其中有一行
\t
数据,文件中的数据通过一个循环更新,在这个循环的最后,它被放入一个表中。我正在处理的当前数据有24列25行,除了第一个值相同的两行之外,它输入的数据都很好;其中只有1个被输入

我没有任何设置为主键或唯一值启用,但它只是没有以相同的第一个值进入行,即使值3、4和5也是相同的

以下是完整的代码:

<?php
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('amazondb', $conn);

mysql_query ("TRUNCATE TABLE imported_orders"); 

$lines = file('F:/xamptest/htdocs/UniProject/upload/Amazon output.txt');
$lineCount = count($lines);
for ($arrayCounter=0; $lineCount>$arrayCounter; $arrayCounter++)
{
    $lineEx = explode("\t", $lines[$arrayCounter]);         
    $lineEx[2] = substr($lineEx[2], 0, -15); 
    $lineEx[3] = substr($lineEx[3], 0, -15);
    $lineEx[4] = substr($lineEx[4], 0, -15);
    $lineEx[5] = substr($lineEx[5], 0, -15);        
    $arri = implode("\t",$lineEx);      
    file_put_contents('upload/ImportLine.txt', $arri);
    $r = mysql_query ("LOAD DATA INFILE 'F:/xamptest/htdocs/UniProject/upload/ImportLine.txt' INTO TABLE imported_orders FIELDS TERMINATED BY '\t'", $conn);        
    echo "Array Counter Loop: ".$arrayCounter." Order ID: ".$lineEx[0]."<br>";              
}   
echo "<br>WLoop has ran: ".$arrayCounter." Times";  
?>

您能给我们一个演示数据表布局的例子吗?您得到的确切错误是什么?使第一个值和第二个值成为一个复合主键,这似乎起到了作用。仍然不确定为什么它最初不起作用,因为第一列没有设置为PK或其他什么,但我很高兴它现在起作用了。感谢您的帮助:)看起来您已经解决了最初的问题,但是为什么要在循环中运行INSERT命令呢?您应该利用数据库能够在一个查询中插入所有数据的优势,而且它的运行速度比一次插入一行要快得多。这难道不需要我列出所有24个列名和数组,所以column1、column2等值数组[0],数组[1]因为我需要循环它来改变一些值,所以我认为这可能更整洁。如果我可以从这个字符串中输入由\t确定的值,那就太好了,但您似乎不能。另外,我还没有解决这个问题,正在输入所有行,现在不是了,我没有更改任何内容:'(