如何获取INSERT IGNORE的mysql_errno()

时间:2013-04-01 06:39:16

标签: mysql key duplicates

我有以下代码:

$link=mysql_connect("localhost", "user", "password") or die(mysql_error());
mysql_select_db(raddacen_staff,$link) or die(mysql_error());
$query=mysql_query("INSERT IGNORE INTO database...............") or die(mysql_error());

if(mysql_affected_rows()>0){
 echo 'Data Inserted';
}
else{
echo 'error code '.mysql_errno($link);
}

当我尝试插入带有重复键的记录时,此代码将错误代码显示为“0”。我想向用户显示如果通过检测错误代码找到重复记录。这是因为mysql_affected_rows()对于许多原因不能是< 0或0,所以我需要指出仅重复键的特定错误代码。 您是否知道如何使用INSERT IGNORE查询指出重复键的特定错误代码?

1 个答案:

答案 0 :(得分:1)

来自the manual

  

如果使用IGNORE关键字,则执行时会出现错误   INSERT语句被视为警告。例如,没有   IGNORE,一个复制现有UNIQUE索引或PRIMARY KEY的行   表中的值导致重复键错误,语句为   中止。使用IGNORE时,仍未插入行,但没有错误   发出的。

因此,如果您需要错误,则需要删除隐藏错误的关键字,即IGNORE

或者,您可以通过发出SHOW WARNINGS查询来阅读警告