'INSERT IGNORE INTO',我如何获得导致忽略的列(设置为'unique'/'primary'的列)?
使用示例,我将用户插入到表中,如果已插入用户名或电子邮件,则不会插入 - 我想知道是否已插入的电子邮件或用户名(或两者)因此我可以打印通过javascript在屏幕上显示错误消息。
因为你可能会建议我事先使用SELECT。但是,通过执行此操作,我必须运行2个额外的查询 - 我正在尝试尽可能保持脚本清洁/快速。
我知道mysql_affected_rows()可以告诉我它是否被插入,但它不会返回那些证明它的列。
我假设我可以使用mysql_error或其他什么?我不确定,因为mysql_error只显示错误 - 因为我使用'IGNORE'它不会缓冲错误。
如果我解析了mysql_error或其他什么,@ mysql_query('INSERT INTO ...')会工作吗?
答案 0 :(得分:3)
在查询之后,您可以执行SHOW WARNINGS
以查看有关重复键的信息。
您可以在此问题的答案中找到处理MySQL警告的PHP代码示例:Can I detect and handle MySQL Warnings with PHP?