mysql - 将枚举值从 1 更新为 0 mysql?

标签 mysql

我试图让这个脚本更新我的“ptb_messages”表中的枚举列“read_message”,但它什么也没做。脚本的其余部分工作正常,但它只是忽略将“read_message”从 1 更新为 0 的请求。

有人可以告诉我哪里出了问题吗?谢谢

<?php 

        session_start();

        include 'includes/_config/connection.php'; 

        $subject = $_POST['subject'];

        $message_id=$_GET['to'];

        $textarea = $_POST['textarea'];

        $query = mysql_query("SELECT content FROM ptb_messages WHERE id='".$message_id."'");

     $results=mysql_fetch_array($query);

     $result=$results['0'];

        if($result && $textarea) {

            $sql = mysql_query("UPDATE ptb_messages SET content ='".addslashes($textarea)."' WHERE id='".$message_id."'"); 

              $sql = mysql_query("UPDATE ptb_messages SET date_sent = LOCALTIME WHERE id='".$message_id."'");


            $query = mysql_query("SELECT suibject FROM ptb_messages WHERE id='".$message_id."'");

            $sql = mysql_query("UPDATE ptb_messages SET subject = IF(subject LIKE '%:reply', subject, CONCAT(subject, ':reply'))  WHERE id='".$message_id."'"); 

            $sql = mysql_query("UPDATE ptb_messages SET read_message = '0' WHERE id=".$message_id.""); 



      $_SESSION['message_sent']="<div class=\"message_sent\"></div>"; 
    header("Location: {$_SERVER['HTTP_REFERER']}#confirm");
        }

        ?>

最佳答案

您遇到了 MySQL 中的边缘情况。枚举字段的值可以由实际值或允许值列表中的索引引用。您正在尝试使用 0,MySQL 将其解释为列表的索引 0,其内部是空字符串。

例如

 myfield ENUM('one', 'two', 'three')


 myfield = 'two' => 'two'
 myfield = 1 => 'one'
 myfield = 0 => '', not in list, ignore...

如果您只需要字段的 0/1 值,为什么不使用实际的 BIT 字段,它已经是 0/1/null-only 了?对纯数值使用枚举只会遇到值与索引的问题。

关于mysql - 将枚举值从 1 更新为 0 mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14816818/

相关文章:

php - 插入到中不需要的字符

java - 将 ZonedDateTime 从 Dropwizard 保存到 MySQL 时出现问题

java - 连接到用户输入数据库

php - 执行 Mysql 查询时网站无法加载

php - 如何使用关系和 where 子句选择所有记录 Laravel MySQL

javascript - 更新 bookshelf.js 中的表

php - 从来自 PHP 下拉选择框的 SQL Select 语句 where 子句中获取变量

MySQL插入查询错误代码: 1406.列数据太长

php - 将产品复制到所有网站 - Magento 多商店

php - MySQL 查询标签系统,仅选择使用过的标签