2014-01-10 120 views
1

嗨,你可以幫我做我的查詢更新如果表如果id存在然後如果不插入它? 這裏是我的查詢:插入id是否存在,或者如果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 } 
} 
+0

[Duplicate](http://stackoverflow.com/questions/6030071/mysql-table-insert-if-not-exist-otherwise-update)。 – ccKep

+0

可能重複[如何在MySQL中插入'如果不存在'](http://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysql) – ccKep

回答

0

首先,您的腳本尖叫爲prepared statements。您可以通過切換大幅提高速度和性能(特別是因爲您使用的是過時的mysql擴展)。

我假設idPRIMARY KEY或至少一個UNIQUE索引。要做到這一點,最簡單的方法是做INSERT IGNORE,這將嘗試插入您的記錄,如果他們發生衝突,忽略了

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

如果你想更換值誤差和移動時,你可以在使用REPLACE更高版本的MySQL

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

如果密鑰已經存在,則更新該行。

+0

謝謝你的回覆。我會嘗試 – jcbbea

相關問題