我正在创建一个表格,供学生插入入学考试,其中包含以下值(id(主键)、名称、符号、地址) 然后他们会打印准考证。
如果他们双重输入其值,并且如果已经存在具有相同符号值的行,我想将名称和地址更新为新值(如果存在)而不是插入新值。
我怎样才能做到这一点..?
我的Mysql数据库是
$name = $_POST['name'];
$symbol = $_POST['symbol'];
$address = $_POST['address'];
$sql = "
IF NOT EXISTS (SELECT * FROM entrance WHERE symbol = :symbol)
INSERT INTO entrance(
name,
symbol,
address) VALUES(:name,:symbol,:address)
ELSE
UPDATE entrance SET name = :name, address = :address WHERE symbol =
:symbol
";
$q = $db->prepare($sql);
$q->execute(array(':name'=>$a,':symbol'=>$symbol,':address'=>$address,))
最佳答案
您可以在 SQL 中使用 IF NOT EXISTS。
IF NOT EXISTS (SELECT * FROM entrance WHERE symbol = :symbol)
INSERT INTO entrance(
name,
symbol,
address) VALUES(:name,:symbol,:address)
ELSE
UPDATE entrance SET name = :name, address = :address WHERE symbol = :symbol
关于php - 如果值匹配则更新行,否则插入新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54519237/