PHP / MySQL将字符串插入数据库

时间:2014-02-20 03:51:43

标签: php mysql database

我正在尝试将多个不同的单词插入到数据库中(如果它们尚未存在于数据库中)。我从用户输入多个类别的文本字段中获取文本。我想用逗号分割从这个文本字段传递的文本,并将其单独插入到数据库中(如果它尚未包含在数据库中)。目前没有任何内容输入数据库。在此先感谢您的帮助!

以下是我拆分文本字段数据并插入数据库的代码:

$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);
}

1 个答案:

答案 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);

然后上面的查询就会做你想要的。