mysqli INSERTコードに問題があります。 重複を扱う方法は本当に分かりませんが、そこに多くの記事を読み込んでいます。同じコードを実行すると、行数が増えます。このコードを修正したり、重複を確認する別の方法を見つけるのを手伝ってもらえますか?mysqliのPHPが存在する場合は編集してください
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($stmt = $conn->prepare(
"INSERT INTO matka (jmeno, prijmeni, bydliste, telefon, email)
VALUES (?,?,?,?,?)
ON DUPLICATE KEY UPDATE
jmeno = VALUES(jmeno),
prijmeni = VALUES(prijmeni),
bydliste = VALUES(bydliste),
telefon = VALUES(telefon),
email = VALUES(email)")) {
$stmt->bind_param("sssss", $jmeno_matky, $prijmeni_matky, $bydliste_matky, $telefon_matky, $email_matky);
$stmt->execute();
printf("%d Row inserted.\n", $stmt->affected_rows);
$stmt->close();
$id_matky = $conn->insert_id;
$conn->close();
}
私は作品の前に 'prijmeni = VALUES()'構文を見たことがありませんか?また、同じデータに更新するだけの場合は、無視しても差し支えありません。 – chris85
私はそこにいました:http://stackoverflow.com/questions/22699598/prepared-statement-with-on-duplicate-key 彼のコードは私と同じように見えましたので、試してみました。 INSERT INTO tablename(...)の代わりに使用する必要があります - INSERT IGNORE tablename(..)?? – ochj1ch
'insert ignore'は重複しようとするエラーを無視します。あなたはユニークではないが、それはエラーをスローしません。そこに何かユニークなものを作って、dupが起こらないようにしてください。 – chris85