2013-02-11 100 views
0

我试图让这个脚本在我的“ptb_messages”表更新我的枚举列“read_message”,但它只是没有做任何事情。该脚本的其余部分工作正常,但它只是忽略从1更新“read_message 0更新枚举值从1到0 mysql?

有人可以告诉我的请求,其中我去错了吗?感谢

<?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"); 
     } 

     ?> 

回答

1

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

例如

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


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

如果你只需要一个字段的值0/1,为什么不使用一个实际的比特字段,其0/1 /空只能是了吗?使用纯粹数字值的枚举就会遇到这个值-v.s.-index问题。