我有以下代码:
$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查询指出重复键的特定错误代码?
答案 0 :(得分:1)
来自the manual:
如果使用IGNORE关键字,则执行时会出现错误 INSERT语句被视为警告。例如,没有 IGNORE,一个复制现有UNIQUE索引或PRIMARY KEY的行 表中的值导致重复键错误,语句为 中止。使用IGNORE时,仍未插入行,但没有错误 发出的。
因此,如果您需要错误,则需要删除隐藏错误的关键字,即IGNORE
。
或者,您可以通过发出SHOW WARNINGS
查询来阅读警告。