我正在尝试让这个脚本在我的'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");
}
?>
答案 0 :(得分:1)
你在MySQL中遇到了一个边缘案例。枚举字段的值可以由实际值引用,也可以在允许值列表中引用它们的INDEX。您正在尝试使用0
,MySQL将其解释为列表的索引0,其内部为空字符串。
e.g。
myfield ENUM('one', 'two', 'three')
myfield = 'two' => 'two'
myfield = 1 => 'one'
myfield = 0 => '', not in list, ignore...
如果您只需要字段的0/1值,为什么不使用实际的BIT字段,该字段已经是0/1 / null?将枚举用于纯数值只会遇到此值-v.s.-索引问题。