INSERT IGNORE INTO - 但原因是什么栏目?

时间:2012-04-19 21:09:50

标签: php mysql sql

'INSERT IGNORE INTO',我如何获得导致忽略的列(设置为'unique'/'primary'的列)?

使用示例,我将用户插入到表中,如果已插入用户名或电子邮件,则不会插入 - 我想知道是否已插入的电子邮件或用户名(或两者)因此我可以打印通过javascript在屏幕上显示错误消息。

因为你可能会建议我事先使用SELECT。但是,通过执行此操作,我必须运行2个额外的查询 - 我正在尝试尽可能保持脚本清洁/快速。

我知道mysql_affected_rows()可以告诉我它是否被插入,但它不会返回那些证明它的列。

我假设我可以使用mysql_error或其他什么?我不确定,因为mysql_error只显示错误 - 因为我使用'IGNORE'它不会缓冲错误。


如果我解析了mysql_error或其他什么,@ mysql_query('INSERT INTO ...')会工作吗?

1 个答案:

答案 0 :(得分:3)

在查询之后,您可以执行SHOW WARNINGS以查看有关重复键的信息。

您可以在此问题的答案中找到处理MySQL警告的PHP代码示例:Can I detect and handle MySQL Warnings with PHP?