2013-02-11 105 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問題。