首页 > 解决方案 > 无法更新 MySQL 中的值

问题描述

我有一个config_table带有字段的表idconfig_value。我想更新config value如下id ='6'

if($user->status_id=='1' && $user->reviewed!='0'){
    if($sl_flag==0 && $requestor_role->role_id==7){ 
        $status="Waiting for Review"; 
        $title="Waiting for Review";
    }elseif($sl_flag==0){ 
        $status="Waiting for dept.owner approval";
        $title="Waiting for Deptment owner approval ";
    }else{ 
        $status="Waiting for prac.owner approval";
        $title="Waiting for practice owner approval";
    }
}

我已更新为

update config_table set config_value='     if($user->status_id=='1' && $user->reviewed!='0'){
if($sl_flag==0 && $requestor_role->role_id==7){ 
    $status="Waiting for Review"; 
    $title="Waiting for Review";
}elseif($sl_flag==0){ 
    $status="Waiting for dept.owner approval";
    $title="Waiting for Deptment owner approval ";
}else{ 
    $status="Waiting for prac.owner approval";
    $title="Waiting for practice owner approval";
}
}' where id='6';

我已经在腻子服务器中尝试过这个,但是我在每行的 } 附近发现了语法错误。如何更新这个

标签: phpmysql

解决方案


您正在使用''config_value地方也开始使用''. 所以它认为它到此结束,但你只想分配一个值。此代码中有几个选项可以修复它。首先:PHP 是松散类型的,所以你可以只更新''到.config_value""

update config_table set config_value='     if($user->status_id=="1" && $user->reviewed!="0"){
 if($sl_flag==0 && $requestor_role->role_id==7)
 { $status="Waiting for Review"; 
 $title="Waiting for Review";
 } 
 elseif($sl_flag==0)
 { $status="Waiting for dept.owner approval";
 $title="Waiting for Deptment owner approval ";
 }
 else
 { $status="Waiting for prac.owner approval";
 $title="Waiting for practice owner approval";
 }
}' where id="6";

另一种选择是转义您使用检查的值''。这可以通过\'.

value = 'if($user->status_id==\'1\') { /*your code*/ }'


推荐阅读