我正在尝试将多个不同的单词插入到数据库中(如果它们尚未存在于数据库中)。我从用户输入多个类别的文本字段中获取文本。我想用逗号分割从这个文本字段传递的文本,并将其单独插入到数据库中(如果它尚未包含在数据库中)。目前没有任何内容输入数据库。在此先感谢您的帮助!
以下是我拆分文本字段数据并插入数据库的代码:
$category = trim($_POST['category']);
$cat2 = explode(',', $category);
foreach ($cat2 as $new_interest)
{
$insert_user_interests = sprintf("INSERT INTO interests IF NOT EXISTS name = '". $new_interest . "'" .
"(name) " .
"VALUES ('%s');",
mysql_real_escape_string($new_interest));
mysql_query($insert_user_interests);
}
答案 0 :(得分:0)
这是您的insert
声明:
INSERT INTO interests IF NOT EXISTS name = '". $new_interest . "'" .
"(name) " .
"VALUES ('%s')
据我所知,这不是有效的insert
语法。 (文档为here。)我认为您将其与create table
语法混淆。相反,请使用ignore
之类的内容:
INSERT IGNORE INTO interests(name) VALUES(". $new_interest . "')"
编辑:
是的,如果您不想插入重复项,请在name
上创建唯一索引:
create index unique interests_name on interests(name);
然后上面的查询就会做你想要的。