将2个删除列表添加到关联表

时间:2009-05-29 11:14:18

标签: mysql drop-down-menu

我在尝试使用2个删除列表添加记录时遇到问题。 我有一个名为Urls的表,其中包含url的详细信息。我有一个名为category的表填充下拉列表,我有另一个名为publishers的表,它填充了另一个下拉列表。

            $query = 'INSERT INTO url_associations (url_id, url_category_id, approved, url_publisher_id) VALUES ';
        foreach ($_POST['types'] as $v){
            $query .= "($uid, $v, 'Y', $k), ";
        }
        $query = substr ($query, 0, -2); // Chop off the last comma and space.

        $result = @mysql_query ($query); // Run the query.

        if (mysql_affected_rows() == count($_POST['types'])) { // Query ran OK.

            echo '<p><b>Thank you for your submission!</b></p>';
            $_POST = array(); // Reset values.

        } else { // If second query did not run OK.

上面的代码允许我使用类别下拉列表添加数据但是当我尝试将url_publisher_id添加为'海报'作为$ k时,我的解析中一直出现错误。如果有人能够理解我想要实现的目标,那么欢迎你的帮助

2 个答案:

答案 0 :(得分:1)

如果$ k变量的值不是整数或浮点数,那么你会得到一个错误,因为在你构建SQL INSERT语句时它需要引用它:

$query .= "($uid, $v, 'Y', '$k'), ";

注意:您的示例中存在一些主要的安全问题。如果您将$ _POST中的用户输入放入SQL而不转义它,那么您就可以让用户运行他们想要在您的数据库上运行的任何SQL命令。

答案 1 :(得分:0)

我添加了一个额外的数组foreach($ _POST [海报]为$ k)

//所以它读取

'foreach($ _POST [types] as $ v) foreach($ _POST [海报]为$ k){`

它完美地执行了。

感谢您的帮助。

肖恩