我正在为学生创建一张表格,用于插入具有以下值(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,))
答案 0 :(得分:1)
您可以在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
答案 1 :(得分:0)
首先通过使用select查询检查数据是否在数据库中
$select = "SELECT * FROM entrance WHERE symbol='$symbol'";
如果选择查询返回行> 0,则运行更新查询,否则插入查询