循环$ _POST并添加到数据库

Bec*_*ter 5 php mysql foreach

我想要做的是循环文本输入,用户输入博客文章的标签.我想将每个标记添加到数据库(如果它尚不存在).

当我在数据库中测试时,下面的实际查询字符串有效.

但是我认为我的循环语法可能不太正确,因为我没有添加任何内容.

任何人都可以在循环中发现错误导致我的"添加到数据库"失败吗?

在此先感谢您的帮助!

foreach ($_POST['__tags'] as $key=>$ls_value) {

        $value = strtolower(mysql_real_escape_string($ls_value));

        mysql_query("INSERT INTO `table` (`field`)
                SELECT * FROM (SELECT '$value') as tmp
                WHERE NOT EXISTS (
                        SELECT `field` FROM `table` WHERE `field` = '$value')
                LIMIT 1") or trigger_error(mysql_error(), E_USER_ERROR);            

    }
Run Code Online (Sandbox Code Playgroud)

Kum*_*nha 1

尝试使用以下代码:

if(is_array($_POST['__tags']))
{
    foreach ($_POST['__tags'] as $key=>$ls_value) {

        $value = strtolower(mysql_real_escape_string($ls_value));

        mysql_query("INSERT INTO table (field)
            SELECT * FROM (SELECT '".$value."') as tmp
            WHERE NOT EXISTS (SELECT field FROM table WHERE field = '".$value."') LIMIT 1") or trigger_error(mysql_error(), E_USER_ERROR);            

    }
}
Run Code Online (Sandbox Code Playgroud)

请使用正确的 PDO 或准备好的语句,并且不推荐使用 mysql_query,而是使用 mysqli 函数