【发布时间】:2011-10-24 15:51:17
【问题描述】:
我有密码
mysql_query("INSERT INTO authors (author) VALUES ('$rec_fic_author') WHERE NOT EXISTS (SELECT * FROM authors WHERE author='$rec_fic_author')") or die("cannot insert author");
其中 authors 是包含 authorID (pk) 的表,以及 author $rec_fic_author 是一个 _POST 变量
我正在尝试这样做,以便当一个人添加作者时,代码会检查数据库中是否有同名的人(在作者列下)。如果没有,则添加条目 我的作者是 TEXT,由于某种原因,我无法使其在 phpMyAdmin 中独一无二。 我查看了 REPLACE 和 INSERT .. ON DUPLICATE KEY UPDATE,但据我所知,他们都需要有问题的值是唯一/PK 值。这不是这里的情况。
帮助?
【问题讨论】:
-
能不能把你的表结构和PK等信息分享一下
-
你为什么不为作者做一个 SELECT 并检查 mysql_num_rows()?如果它等于 0 则插入。
-
author as TEXT 似乎有点过大,应该使用 CHAR/VARCHAR;这些可以有一个唯一的索引。