if(isset($_POST['submit']))
{
if ($firstName&&$lastName&&$email!=""){
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql= "UPDATE abonnenter SET id = (id+1)";
$conn->exec($sql);
$sql = "INSERT INTO abonnenter (id,firstname,lastname,mail)
VALUES (id,'$firstName','$lastName', '$email')";
// use exec() because no results are returned
$conn->exec($sql);
echo "Du blir nå sendt en mail når bloggen oppdateres";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
}
}
是代码。当我的 id get -1 而不是 +1 时它可以工作,但是在保持代码语义方面将主键 id 列为负数似乎非常糟糕
最佳答案
使 id 自动递增。并更新您的 sql 查询,例如
$sql = "INSERT INTO abonnenter (firstname,lastname,mail)
VALUES ('$firstName','$lastName', '$email')";
您的代码也可以使用 pdo 或准备好的语句进行 SQL 注入(inject)
关于php - 有什么方法可以修复此代码以避免错误 : Duplicate entry '1' for key 'PRIMARY' each time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59551913/