2

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

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

因为,你可能会建议我事先使用 SELECT。但是,通过这样做,我必须运行 2 个额外的查询 - 我试图使脚本尽可能干净/快速。

我知道 mysql_affected_rows() 可以告诉我它是否已插入,但它不会返回证明它不这样做的列。

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


如果我解析 mysql_error 或其他东西,@mysql_query('INSERT INTO ...') 会起作用吗?

4

1 回答 1

3

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

您可以在此问题的答案中找到处理 MySQL 警告的 PHP 代码示例:我可以使用 PHP 检测和处理 MySQL 警告吗?

于 2012-04-19T21:14:42.760 回答