php mysql UPDATE tinyint set选择1和rest 0

时间:2013-07-24 12:58:22

标签: php mysql enums sql-update

我的php mysql代码很奇怪。

这有时会起作用,有时候当我执行这行代码时,它会将所有值都设置为0.

$tid = htmlentities(mysql_real_escape_string($_POST['themes']));
$sql = ("UPDATE ai_themes 
         SET chosen = IF(tid!='$tid', '0','1')");

mysql_query($sql);

有时只是整个晚上所有的值都是0。 没看过枚举类型,但只是好奇为什么会这样......

主题表:

tid = int, PK, NOT NULL, AUTO_INCREMENT
name = varchar(30)
chosen = tinyint(1)

[编辑]

嗯,似乎我没有从选择表单中获得有效值:

<form action="my_form_handler.php?c=3" method="post" data-transition="slideup">
    <div data-role="fieldcontain">
        <label for="themes" class="select">Select theme:</label>
        <select name="themes" id="select-theme">
        <option value="1">Red</option>
        <option value="2">Green</option>
        <option value="3">Orange</option>
            <option value="4">Blue</option>
        </select>
    </div>
    <div data-role="fieldcontain" class="ui-hide-label">
        <button type="submit" data-theme="a" name="submit" value="submit-value">Change theme</button>
    </div>
</form>

看不到任何错误......

1 个答案:

答案 0 :(得分:0)

你错过了这里的WHERE部分...没有它它会匹配你表中的所有行