我试图让这个脚本更新我的“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/