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

それでも、それはテーブルに何も追加しませんか?誰かが理由を見ることができますか?確認したところ、投稿データが送信されていますか?そしてそれはDBにうまく接続しますか?

皆さんが尋ねる前に、はい、私はセキュリティの脅威などを認識しています...

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 に答える