Невозможно использовать запрос UPDATE со значением переключателя - PullRequest
1 голос
/ 07 марта 2011

У меня возникли некоторые проблемы со следующим кодом:

$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 ]

1 голос
/ 07 марта 2011

Ваш элемент радио-кнопки выглядит следующим образом?

<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-запросов: экранируйте также имена полей с этим символом: `

Если вы используете зарезервированные слова в качестве имен файлов без этого символа, такого как ключ, log, ... вы получаете ошибку!

UPDATE `variable` SET `value` = '".mysql_real_escape($selected_radiobutton)."' WHERE `name` = 'theme_default';
0 голосов
/ 07 марта 2011

Пожалуйста, переделайте $ selected_radiobutton и увидите, что вы на самом деле получаете строку из $ _POST - это поможет, я думаю.

0 голосов
/ 07 марта 2011

Неважно, сам разобрался:)

Скрипт работает, но я продолжал нажимать не ту кнопку. В любом случае, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...