这个向mysql追加数据的代码哪里错了?

想问一下下面这段代码哪里错了,为什么操作不成功

$sql="upadte song_ci_ku set work_content=concat(work_content,'$value') where id=$id";
if(!empty($res['work_content']))
                {
                    //如果不为空,追加数据
                $sql="upadte song_ci_ku set work_content=concat(work_content,'$value') where id=$id";
                //  $sql="concat(work_content,'$value') where id=$id";

                    //echo "<br/>sql语句:**********$sql";
                    $res=$db1->exec($sql);
                    var_dump($res);
                }else
                {
                    //如果为空,更新数据
                    $sql="update song_ci_ku set work_content='$value' where id=$id";

                    //echo "<br/>sql语句:**********$sql";
                    $res=$db1->exec($sql);

                }

另外:

    $sql="upadte song_ci_ku set work_content=concat(work_content,'$value') where id=$id";

和下面

$sql="concat(work_content,'$value') where id=$id";

这两种写法有什么不同

$sql="concat(work_content,'$value') where id=$id"; 这部构成完整的sql,无法单独执行,需要和 ipdate ... 拼接。

$sql="upadte song_ci_ku set work_content=concat(work_content,'$value') where id=$id";
->
$sql="upadte song_ci_ku set work_content=concat(work_content,'" + $value + "') where id=" + $id;

1、$sql="upadte song_ci_ku set work_content=concat(work_content,'$value') where id=$id";这里的’$value’这里传入应该是变量,是不是应该去掉引号;
2、这两种完全不一样,第一个是完整的update更新语句,第二个不是完整的sql语句