gpt4 book ai didi

PHP/SQL 将值插入表并将一个值设置为唯一后,无法插入更多值

转载 作者:行者123 更新时间:2023-11-29 21:07:52 28 4
gpt4 key购买 nike

我尝试创建规范化数据库。

当我第一次插入值时,一切都工作正常,但是(我认为设置值是唯一的原因)它不想添加。

这是我的查询(如果需要,我也可以显示数据库)

$query = "INSERT INTO userMore (userEmailG, userGenderG, userAboutG, userBirthdayG, userLanguageG) values ('$userEmailG','$userGenderG', '$userAboutG', '$userBirthdayG', '$userLanguageG');";

$query .= "INSERT INTO userBasic (id_uM, userNameG, userEmailG) values ((SELECT id_uM FROM userMore WHERE userEmailG='$userEmailG'),'$userNameG', '$userEmailG');";

$query .= "INSERT INTO dvlaInfoMore (sixMonthRate, twelveMonthRate, wheelPlan, revenueWeight, typeApproval, taxStatus, taxed, taxDetails, mot, motDetails) values ('$sixMonthRate', '$twelveMonthRate', '$wheelPlan', '$revenueWeight', '$typeApproval', '$taxStatus', '$taxed', '$taxDetails', '$mot', '$motDetails');";

$query .= "INSERT INTO dvlaInfoBasic (id_uDInfoM, plateNumber, make, model, yearOfManufacture, cylinderCapacity, dateofFirstRegistration, co2Emissions, fuelType, colour, vin, transmission)
values (LAST_INSERT_ID(), '$plateNumber', '$make', '$model', '$yearOfManufacture', '$cylinderCapacity', '$dateofFirstRegistration', '$co2Emissions', '$fuelType', '$colour', '$vin', '$transmission');";

$query .= "INSERT INTO userLocation (latitude, longitude, postCode) values ('$latitude', '$longitude', '$postCode');";

$query .= "INSERT INTO userChioce (doWithCar) values ('$doWithCar');";

$query .= "INSERT INTO userStatus (userIdG) values ('$userIdG');";

$query .= "INSERT INTO userMain (userIdG, id_uB, id_uDInfoB, id_uChoice, id_uLoc, id_uStat) values ('$userIdG', (SELECT id_uB FROM userBasic WHERE userEmailG='$userEmailG'), (SELECT id_uDInfoB FROM dvlaInfoBasic WHERE plateNumber ='$plateNumber'), LAST_INSERT_ID(), (SELECT id_uLoc FROM userLocation WHERE postCode='$postCode'),(SELECT id_uStat FROM userStatus WHERE userIdG='$userIdG'))";

因此,第一次添加 userMore,然后添加 userBasic,然后添加 dvlaInfoMore,然后添加 dvlaInfoBasic,依此类推

我在 userBasic 列 userNameG 中设置为 UNIQUE,因此如果插入已经存在的电子邮件,则它不想进一步操作,但如果没有,则所有内容都会正确添加。

我希望它将继续插入不同的汽车,然后使用表 userMain 中的现有电子邮件显示结果。

P.S.如果我尝试使用相同的电子邮件地址添加不同的汽车,这是行不通的。基本上不要添加任何东西。

最佳答案

正如您所怀疑的那样,使用定义为 UNIQUE 的现有键进行 INSERT 将会失败。

一种解决方法是使用 REPLACE INTO 语句而不是 INSERT(请参阅 manual )。

关于PHP/SQL 将值插入表并将一个值设置为唯一后,无法插入更多值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36655726/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com