我遇到此代码的问题:
<?php $new_value = 'testing'; $con = mysql_connect("localhost","user","pass"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); mysql_query("INSERT INTO myDB (myField) VALUES ('$new_value')"); mysql_close($con); ?>2个问题正在发生:
第1个 - 正在插入2个记录而不是1个
第二个 - $ new_value没有改变,当我只想要1时,它创建了具有相同$ new_value值的多个实例。
I am having problems with this code:
<?php $new_value = 'testing'; $con = mysql_connect("localhost","user","pass"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); mysql_query("INSERT INTO myDB (myField) VALUES ('$new_value')"); mysql_close($con); ?>2 issues are happening:
1st - 2 records are being inserted instead of 1
2nd - $new_value is not changed and it's creating multiple instances with the same $new_value value when I only want 1.
最满意答案
在阅读你的评论之后,我认为这与你所追求的类似:
INSERT IGNORE INTO tablename (fields) VALUES(values);使用INSERT IGNORE而不是INSERT。 如果记录没有复制现有记录,MySQL会像往常一样插入它。 如果记录是重复的,则IGNORE关键字告诉MySQL以静默方式丢弃它而不会产生错误。
编辑或正如Vytautas指出的那样; 如果要替换值,请使用REPLACE而不是INSERT
I think this is something similar to what you are after, after reading your comment:
INSERT IGNORE INTO tablename (fields) VALUES(values);Use INSERT IGNORE rather than INSERT. If a record doesn't duplicate an existing record, MySQL inserts it as usual. If the record is a duplicate, the IGNORE keyword tells MySQL to discard it silently without generating an error.
edit Or as Vytautas points out; if you want to replace the value use REPLACE in stead of INSERT
更多推荐
发布评论