如果不存在则插入数据

时间:2013-05-19 06:14:03

标签: php insert

我有两个表cw_usersref_users,两个表都有一个名为id的列。

我正在使用ISAM,因此无法使用外键。 所以现在我想将id中的cw_users插入到ref_users中,如果它不存在的话。

这就是我所做的,但没有帮助:

$id = $_SESSION['id'];
$ref_code=md5($id);

mysql_query("INSERT INTO ref_users (id) VALUES ('$id') WHERE NOT EXISTS (SELECT FROM cw_users where id='$id')"); 

4 个答案:

答案 0 :(得分:0)

正确的语法是INSERT IGNORE INTO

INSERT IGNORE INTO ref_users (id)
VALUES ('$id')

如果值不存在,它将插入,如果存在,则忽略该语句。

请注意,这仅在id是主键

时才有效

编辑:从您的评论中可以看出,使用ON DUPLICATE KEY UPDATE会更好。

尝试此查询

INSERT INTO ref_users(id, ref_code)
VALUES ('$id', '$ref_code')
ON DUPLICATE KEY UPDATE
ref_code = '$ref_code'

答案 1 :(得分:0)

...WHERE NOT EXISTS (SELECT id FROM ...

答案 2 :(得分:0)

为什么不运行普通插入,如果存在行则会失败?

答案 3 :(得分:0)

您的查询是

"INSERT INTO ref_users (id) VALUES ('$id') WHERE NOT EXISTS (SELECT FROM cw_users where id='$id')"

无法使用插入查询中的案例。你可以使用普通插入。