求助数据库问题!!

请问各位高手如下代码:
        session_start();                                                                        
        //装载Session库
        $user_name=$_POST["user_name"];
        session_register("user_name");
        require_once("sys_conf.inc");                        //系统配置文件,包含数据库配置信息
       
        //连接数据库
        $link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);
        mysql_select_db($DBNAME);
        .
        .
        .
        $user_name=$_SESSION["user_name"];
        $password=$_POST["password"];
        .
        .
        $str="insert into buyer (name,password) values        ('$user_name','$password')";
        $result=mysql_query($str, $link_id)or die ("插入数据失败: ".mysql_error()); //执行查询
        mysql_close($link_id);
此代码是在MYSQL4。0X版本写的,在5。0X版本的MYSQL下执行会报出如下错误

        。。。faild()'email' dose not has a default values(类似是这样,被我改了后有点不记的了)
        之后我将MYSQL的设置中的Enable Script Mode前面的勾去掉之后不出现报错,可是上面代码
        写入数据库的只有PASSWORD的值,NAME的值却没有!!!!!
       
        我又将($str="insert into buyer (name,password) values        ('$user_name','$password')";)
        改成($str="insert into buyer set name='".($_POST['user_name'])."',password='$password'";)       
        现在name ,password的值都可以写入数据库。。。。。可是数据库中NAME的中文值又都变???这样的乱码拉
        (直接在数据库中例如NAME 给予其值“中文”就不会出现乱码)
       
        为了这些我都快要疯了,哪位高人指点下我这菜鸟把在此谢谢了!!!
       
        数据库为
--数据库
create database auction;

--用户表
CREATE TABLE buyer (
bid INT NOT NULL AUTO_INCREMENT ,
name varchar(50) NOT NULL,
password varchar(50) NOT NULL,
email varchar(50) NOT NULL,
PRIMARY KEY (bid)
);