如果id不存在则插入或如果id存在查询则更新表?

时间:2014-01-10 01:10:36

标签: php mysql

嗨,你可以帮助我更新表格,如果id存在,那么如果没有插入它? 这是我的疑问:

if(isset($_POST['submit'])){

$a=$_POST['no1'];   $b=$_POST['ans1'];     $c=$_POST['det1'];
$d=$_POST['no2'];   $e=$_POST['ans2'];     $f=$_POST['det2'];
$g=$_POST['no3'];   $h=$_POST['ans3'];         $i=$_POST['det3'];
$j=$_POST['no4'];   $k=$_POST['ans4'];     $l=$_POST['det4'];
$m=$_POST['no5'];   $n=$_POST['ans5'];     $o=$_POST['det5'];
$p=$_POST['no6'];   $q=$_POST['ans6'];     $r=$_POST['det6'];
$s=$_POST['no7'];   $t=$_POST['ans7'];         $u=$_POST['det7'];
$v=$_POST['no8'];   $w=$_POST['ans8'];     $x=$_POST['det8'];
$y=$_POST['no9'];   z=$_POST['ans9'];      $zz=$_POST['det9'];
$aa=$_POST['no10']; $bb=$_POST['ans10'];       $cc=$_POST['det10'];

$sql=mysql_query("insert into bfp_personnel_questions `(`id`,`question_number`,`answer`,`details`) VALUES ('$id', '$a', '$b','$c'),   ('$id','$d','$e','$f'), ('$id','$g','$h','$i'), ('$id','$j','$k','$l'), ('$id','$m','$n','$o'), ('$id','$p','$q','$r'), ('$id','$s','$t','$u'), ('$id','$v','$w','$x'), ('$id','$y','$z','$zz'), ('$id','$aa','$bb','$cc')") or die(mysql_error());`

?><script>alert("Successfully Saved.");window.location="pds_1st.php?part=11";</script><?php }
}

2 个答案:

答案 0 :(得分:0)

尝试SQL语法insert on duplicate key update

答案 1 :(得分:0)

首先,你的剧本为prepared statements尖叫。您可以通过切换来大幅提高速度和性能(特别是因为您使用的是过时的mysql扩展名。)

我认为idPRIMARY KEY或至少是UNIQUE索引。最简单的方法是执行INSERT IGNORE,它将尝试插入您的记录,如果它们发生碰撞,则忽略错误并继续前进

INSERT INGORE INTO table(col1, col2)
VALUES('1', '2');

如果要替换值,可以在MySQL的更高版本中使用REPLACE

REPLACE INTO table(col1, col2)
VALUES('1', '2');

如果密钥已存在,则更新行。