【问题标题】:MySQL update enumsMySQL 更新枚举
【发布时间】:2010-03-27 14:46:36
【问题描述】:

我有一个枚举字段:'preview','active','closed'

当我这样查询时:

        $query = "UPDATE albums 
                SET album_active = preview 
                WHERE album_id = 3";
        $result = mysql_query($query);
        if (!$result) die('Invalid query: ' . mysql_error());

我明白了:

Invalid query: Unknown column 'preview' in 'field list

其他查询:

        $query = sprintf("UPDATE albums SET 
                    album_active = %s 
                    WHERE album_id = %d", 
                    $_POST['album_active'], 
                    $_POST['album_id']
            );

【问题讨论】:

    标签: php mysql sql enums sql-update


    【解决方案1】:

    尝试将preview 放在引号中:

    SET album_active = 'preview' 
    

    没有引号 preview 将被查询解析​​器识别为列名,类似于:

    UPDATE TABLE T
    SET column1 = column2
    WHERE...
    

    【讨论】:

    • 那行得通,实际上我有一个关于 sprintf() 的查询。请参阅更新的代码。干杯。
    • 酷!另一个问题.. $_POST 发送的所有数据类型都转换为字符串吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多