我有一个具有以下操作的表单:
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 语句的问题下的评论,这个问题会神奇地消失并使其更安全(实际上对于这样的多次插入来说速度更快!