如果mysql db table不包含具有特定ID的行,请将数据添加到表中

时间:2011-08-16 11:02:47

标签: php mysql

嗨,我是php和mysql的新手。

我想知道如何使用PHP检查我的mysql数据库中的表是否包含具有特定ID的ROW,如果没有将数据添加到表中。

例如,

表结构:(表名:记录) ID,DATA

我有ID = 123和DATA = hello存储在php代码中的变量中,我如何使用php sql查询通过检查表中的ID 来查明数据是否存在如果没有,则将ID和DATA插入表中。

我希望你明白。

p / s我已将php脚本连接到数据库

5 个答案:

答案 0 :(得分:3)

制作身份证UNIQUE

CREATE TABLE my_table( ID INT UNSIGNED UNIQUE...

然后使用INSERT IGNORE

INSERT IGNORE INTO my_table( ID, DATA ) VALUES( some_id, some_data )

答案 1 :(得分:2)

IF NOT EXISTS(SELECT 1 FROM structure WHERE ID = <yourid>)
   INSERT INTO structure (ID, DATA) VALUES(<yourid>, <yourdata>)

答案 2 :(得分:1)

只需用REPLACE替换INSERT。

http://dev.mysql.com/doc/refman/5.5/en/replace.html

答案 3 :(得分:1)

另一种选择:

INSERT INTO record(id, `data`) SELECT 123, 'hello'
FROM new_table WHERE NOT EXISTS (SELECT id from record where id = 123 );

答案 4 :(得分:0)

如果您的ID是唯一键,则可以直接尝试插入行。如果该ID已经在表中,则数据库不允许您插入它并返回错误。否则,您必须首先运行SELECT语句,以查看您的表中是否存在此ID,如果没有,则插入它。

此线程也会帮助你很多我认为How to 'insert if not exists' in MySQL?