データベースにデータを挿入したいのですが、実行しようとするとエラーになります。データはASCファイルから得られ、データを抽出しますが、コードを実行するとエラーになります。これは、コードとエラーです:整合性制約違反:1062データベースにCSVデータを入力しようとしたときにキー 'PRIMARY'の重複エントリ ''
<?php
echo '<pre>';
error_reporting(E_ALL);
function importdb()
{
$producten= [];
$File2 = $_FILES['file2']['tmp_name'];
$handle2 = fopen($File2, "r");
include('db_config.php');
while(($data2 = fgetcsv($handle2, 1000, ";")) !== FALSE) {
if (isset($data2[1]) && mb_strlen($data2[1]) > 0)
{
$type = $data2[0];
$artikel = $data2[1];
$prijs1 = $data2[6];
$prijs2 = $data2[7];
$prijs3 = $data2[8];
$prijs4 = $data2[9];
$prijs5 = $data2[10];
if (isset($producten[$artikel]))
{
$product_id = $producten[$artikel];
$stmt2 = $db->prepare("INSERT INTO `prijzen`(`artikelnr`, `prijs_soort`, `prijs1`, `prijs2`, `prijs3`, `prijs4`, `prijs5`) VALUES (:nmr, :soort, :prijs1, :prijs2, :prijs3, :prijs4, :prijs5)");
$stmt2->bindParam(":nmr", $artikel);
$stmt2->bindParam(":soort", $type);
$stmt2->bindParam(":prijs1", $prijs1);
$stmt2->bindParam(":product_id", $product_id);
$stmt2->bindParam(":prijs2", $prijs2);
$stmt2->bindParam(":prijs3", $prijs3);
$stmt2->bindParam(":prijs4", $prijs4);
$stmt2->bindParam(":prijs5", $prijs5);
$stmt2->execute();
print_r($data2);
}else{
$product_id = $producten[$artikel];
$stmt2 = $db->prepare("INSERT INTO `prijzen`(`artikelnr`, `prijs_soort`, `prijs1`, `prijs2`, `prijs3`, `prijs4`, `prijs5`, `product_id`) VALUES (:nmr, :soort, :prijs1, :prijs2, :prijs3, :prijs4, :prijs5, :product_id)");
$stmt2->bindParam(":nmr", $artikel);
$stmt2->bindParam(":soort", $type);
$stmt2->bindParam(":prijs1", $prijs1);
$stmt2->bindParam(":product_id", $product_id);
$stmt2->bindParam(":prijs2", $prijs2);
$stmt2->bindParam(":prijs3", $prijs3);
$stmt2->bindParam(":prijs4", $prijs4);
$stmt2->bindParam(":prijs5", $prijs5);
$stmt2->execute();
print_r($data2);
}
}else{
}
}
}
importdb();
そして、これは誤りです:
(!) Notice: Undefined index: 790148 in C:\wamp64\www\jodeco\import.php on line 40
Call Stack
# Time Memory Function Location
1 0.0008 379360 {main}() ...\import.php:0
2 0.0008 379808 importdb() ...\import.php:64
(!) Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '790148' for key 'PRIMARY' in C:\wamp64\www\jodeco\import.php on line 51
(!) PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '790148' for key 'PRIMARY' in C:\wamp64\www\jodeco\import.php on line 51
Call Stack
# Time Memory Function Location
1 0.0008 379360 {main}() ...\import.php:0
2 0.0008 379808 importdb() ...\import.php:64
3 0.0047 409056 execute () ...\import.php:51
これは私が呼ばれるの$ productenを作成してい配列とは何かを持っているのでしょうか?私は配列の使用にかなり新しいです。
誰かがこれがなぜ起こるか知っていますか?それは本当に私を悩ましています。
右側にサイドバーがありますが、*驚くほど*完全に*同じ問題に疑問があります。 –
スキーマが正しい場合は、データが間違っています。データが正しい場合、スキーマは間違っています**どちらも表示できません** – RiggsFolly