MYSQL PHP 表单提交问题


MYSQL PHP form submit issue

我有一个具有以下操作的表单:

foreach ($_POST as $key => $val)
    {
        mysql_query("INSERT INTO wp_10_options (option_name, option_value) VALUES ($key, $val) ON DUPLICATE KEY UPDATE option_value = $val;");
    }

表单中的实际代码是这样的:

$args = array(
                'type'                     => 'post',
                'hide_empty'               => 0, //<--IMPORTANT!!
                'hierarchical'             => 1,
                'taxonomy'                 => 'category',
                'pad_counts'               => false );
                $categories = get_categories($args);
                foreach($categories as $category) { 
                        echo '<tr>';
                        echo "<td>$category->name</td>";
                        $sql = "SELECT option_value FROM wp_10_options WHERE option_name='$category->slug'";
                        $result = mysql_query($sql);
                            while($row = mysql_fetch_array($result))
                          {
                         echo "<td><input type='text' name='$category->slug' value='".$row['option_value']."' /></td>";
                          }
                        echo '</tr>';
                    }

然而,它没有增加任何内容?有人能明白为什么吗?我已经检查过并且正在发送帖子数据?它连接到数据库很好吗?

在你们都问之前,是的,我意识到安全威胁等......

您需要在

SQL中将$key和$val和$val放在引号中,以便发布到数据库。

foreach ($_POST as $key => $val) 
    { 
        mysql_query("INSERT INTO wp_10_options (option_name, option_value) VALUES ('$key', '$val') ON DUPLICATE KEY UPDATE option_value = '$val';"); 
    } 

说您了解安全威胁:请参阅有关使用 PDO/Prepare 语句的问题下的评论,这个问题会神奇地消失并使其更安全(实际上对于这样的多次插入来说速度更快!