插入忽略 - 有没有办法知道语句是否被忽略? MYSQL

时间:2011-03-10 02:31:45

标签: php mysql sql

$sql_insert = "INSERT IGNORE .....";


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

如果插入了行,我想执行代码。是否有一些值可以返回的时间告诉我是否插入或忽略了语句?

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

2 个答案:

答案 0 :(得分:15)

如果插入发生,

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
       }


}

答案 1 :(得分:0)

对于 PDO,答案是

$query="insert ignore into ...;";
$statement=$link->prepare($query);
$statement->execute();
if($statement->rowCount()==1){
   //insert confirmed;
}else{
   //ignore confirmed;
}