1

我有以下代码:

$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 查询指出重复键的特定错误代码吗?

4

1 回答 1

1

手册

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

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

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

于 2013-04-01T07:57:39.223 回答