0

我有一个具有以下作用的表格:

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>';
                    }

然而它没有给桌子增加任何东西吗?有人能看出为什么吗?我已经检查并且正在发送帖子数据?它可以很好地连接到数据库吗?

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

4

1 回答 1

0

您需要在 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/Prepared 语句的问题下的评论,这个问题会神奇地消失并使其更安全(实际上对于这样的多次插入更快!)

于 2012-05-22T11:03:48.500 回答