php - 插入忽略不起作用

标签 php mysql sql

我尝试执行 INSERT IF NOT EXISTS

所以我搜索了这个,发现:How to 'insert if not exists' in MySQL?

所以我尝试使用 IGNORE ,这是我的表:

CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255),
`mail` VARCHAR(255),
PRIMARY KEY (`id`)
) CHARACTER SET utf8 COLLATE utf8_general_ci;

这是我的查询:

INSERT IGNORE INTO `users` SET `mail` = ?, `name` = ?

但它的插入即使存在 所以我搜索了一下,发现:mySQL INSERT IGNORE doesn't "ignore"

我在那里读到只有使用 PRIMARY KEY 它的 dosent 插入重复项

所以你可以在我的表中看到我有 PRIMARY KEY
如果问题是我需要在我的查询中插入 id 字段它的问题是因为我在执行查询时不知道它是什么
那么如何在不创建重复项的情况下将信息插入数据库?

最佳答案

您必须先使用要插入的信息进行选择,如果结果包含一行或多行,则不要插入。

例如,运行查询 SELECT count(*) from users where mail = ?和名字 = ? 然后查看返回的结果对象,根据它插入或跳过。

关于php - 插入忽略不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35044980/

相关文章:

php - 使用 Ajax 与 PHP 对话并从 Mysql 获取数据

python - 根据数据框中的内容从 SQL Server 中删除行

sql - 尝试开发语法以基于第三个表的联接使用另一个表中的值更新一个表

php - WooCommerce 中标题由字母和数字组成时的自定义排序产品

php - 无法订阅 Redis channel Laravel 5.2

javascript - Java脚本中出现意外的 token 错误,是否要正常运行?

php - Laravel 5.5 队列 : No connector for []

mysql - Schrödingers MySQL 表 : exists, 但它没有

php 中的 MySql 远程访问

sql - 如何优化此查询以摆脱子查询?