2011-12-23 38 views
1

现在忙了好几个小时,找出我做错了什么。在sql命令中值变为空值?

在更新sql值变为空?

if(ctype_digit($_POST['id']) 
    AND 
    $_SESSION['captain'] == 1 
    AND 
    $_SESSION['team'] == $_POST['id']) 

{ 
    $teamtekst = $_POST['value']; 

    // update text 
    $q = "UPDATE teams 
       SET 
        teamtekst = '".mysql_real_escape_string($teamtekst)."' 
       WHERE 
        team_id = '".$_POST['id']."' 
       LIMIT 1"; 
    $exec = mysql_query($q); 
    if(mysql_affected_rows($exec) == 1) 
     echo'ok'; 
    else 
     echo $q.' '.$_POST['value']; 


} 
    else 
    { 
    echo 'Fout in gegevens? Tekst niet opgeslagen!'; // faultmessage 
    } 

它呼应的:UPDATE队SET teamtekst = '' WHERE TEAM_ID = '29' LIMIT 1个测试 所以测试是$ _ POST真正的价值[ '值'],但在SQL语句中显示不出来?

在此先感谢您的帮助!

回答

1

它不是一个SQL错误,$_POST['value']未设置 使用var_dump($_POST)知道什么是$ _POST数组中,并检查$_POST['value']之前

+0

艾曼已经设置,谢谢您的回答,但其价值已被选中与回声$ q'。 ” [值 '] $ _ POST。';并在那里显示出价值。我真的很desperade现在:( – Terradon 2011-12-23 22:46:41

+0

@Terradon如果它被打印,那么问题是与mysql_real_escape_string,必须建立一个mysql连接之前使用此功能 – 2011-12-23 22:59:12

+0

Sh **,我真的忘记了我的数据库连接??难以置信,但是我做了:( – Terradon 2011-12-23 23:01:40