无法使用带有单选按钮值的UPDATE查询

时间:2011-03-07 08:41:56

标签: php mysql radio-button

我在使用以下代码时遇到了一些问题:

$selected_radiobutton = $_POST['themes'];
echo " checked : ".$selected_radiobutton."<br/><br/>";

$sql = mysql_query("SELECT value FROM variable WHERE name = 'theme_default'");
$resultaat = mysql_fetch_assoc($sql);

echo 'current theme: <b><big>' . $resultaat['value'] . '</big></b><br /><br />';    

if ($_POST["updateknop"]) {

$sql = "UPDATE variable SET value='".$selected_radiobutton."' WHERE name = 'theme_default'";
if (!mysql_query($sql)) {
    echo "failed";
}
else {
    echo "Query update: '".$selected_radiobutton."'";
}


}

由于某种原因,所有更新查询都会在数据库中放入一个空字符串......难以使用变量两次吗?

有人可以帮我解决这个问题吗? :)

3 个答案:

答案 0 :(得分:1)

你的单选按钮元素看起来像这样吗?

<form method="post" action="file.php">
...
<input type="radio" name="themes" value="defaulttheme" />
...
<input type="submit" name="updateknop" value="send" />
</form>

为此,您的代码应该有效。

无论如何,在执行查询之前,您应该确定转义输入! mysql_real_escape()帮助你!否则,您的脚本容易受到SQL注入的攻击!

mysql-queries的另一个建议:使用这个char转义字段名:`

如果您使用保留字作为文件名而没有像键,日志这样的字符,那么您会收到错误!

UPDATE `variable` SET `value` = '".mysql_real_escape($selected_radiobutton)."' WHERE `name` = 'theme_default';

答案 1 :(得分:0)

没关系,自己弄明白:)

脚本确实有效,但我一直按错了按钮。不管怎样,谢谢!

答案 2 :(得分:0)

请var_dump $ selected单选按钮,看看你实际上从$ _POST获取字符串 - 这有助于我猜。