0
この質問は尋ねられたかもしれないが、私がここで見つけた解決策を試してみたところ、私にとってはうまくいかなかった。電子メール列が存在する場合はデータベース内のデータを更新する必要があります。新しいレコードを挿入しない場合はデータを更新する必要があります。 以下は私のコードです。重複キーの更新構文でもデータが複製される
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db = 'mbf';
$dbconn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($db);
$dat = date("Y-m-d H:i:s");
$date = new DateTime();
$date->modify('+4 weeks');
if(isset($_POST['submit'])) {
$email = $_POST['email'];
$dat = $_POST['date'];
$ghdate = $_POST['ghdate'];
$amount = $_POST['amount'];
$iniamount = $_POST['iniamount'];
$outamount = $_POST['outamount'];
$ghamount = $_POST['ghamount'];
$query = "INSERT INTO donation (email, date, ghdate, amount,
inamount, outamount, ghamount) VALUES ('$email', '$dat',
'$ghdate','$amount',
'$iniamount', '$outamount', '$ghamount')
ON DUPLICATE KEY UPDATE
email='$email', date='$dat', amount='$amount', inamount='$iniamount',
outamount='$outamount', ghamount='$ghamount'";
if(mysql_query($query))
{
echo "<script>alert('Donation of $amount was successful');</script>";
}
else
{
echo "<script>alert('FAILED TO INSERT');</script>";
}
}
?>
電子メール列を更新するのではなく、新しいレコードを挿入します。
電子メール列は一意の(または主キー)として定義されていますか? – Mureinik