2011-03-10 188 views
2
$sql_insert = "INSERT IGNORE ....."; 


if(mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error())) 
{ 
     //code to execute 
} 

我想执行代码,如果行插入。是否有一段时间的价值可以回报,它会告诉我该陈述是被插入还是被忽略?插入忽略 - 是否有方法知道语句是否被忽略? MYSQL

编辑:眼下, “代码执行” 始终执行 - 即使是在忽略实例

回答

14

mysql_affected_rows()函数将返回1或0,1,如果插入发生

if(mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error())) 
{ 
     if(mysql_affected_rows($link)==1){ 
     //insert took place 
     }else{ 
     //no insert 
     } 


} 
+0

谢谢 - 接受了这个答案。快速提问 - 如果mysql_query在if语句中无关紧要,是否正确? - 因为它会经历每一次。 – 2011-03-10 02:47:51

+0

if(mysql_query只检查语句运行\是否有效,不会告诉你插入vs忽略 – 2011-03-10 03:00:12

+0

需要问一下,有没有其他实例,除了重复的主键情况时受影响的行将返回零?或evey情况下0在这种情况下行被认为是重复的主键? – 2014-07-15 12:15:54