if (empty($username)) {$error[]='Username cannot be empty.';}
$query='select user_name from user where user_name="' . $username . '"';
$result=mysql_query($query) or die(mysql_error($db));
if (mysql_num_rows($result)>0) {$error[]='Username has already been used.'; $username='';}这个是我的代码,出错信息:Unknown column 'tchen13' in 'field list'
tchen13是我post过来的变量

解决方案 »

  1.   

    数据库里有个查询的字段 tchen13 不存在.自己检查数据库是否存在这个字段。或者自己是否写错sql 语句
      

  2.   

    你的代码存在被SQL注入的风险。
    至于为什么出错,可以输出看看 $username到底是什么内容
      

  3.   

    怎么被注入呢?可否举个例子,能不能用mysql_real_escape来避免注入?
      

  4.   

    我这个是用来判断数据库中有没有人已经有过这个用户名了,是不是如果没有这条记录,select就会出错?
      

  5.   

    tchen13 哪里来的。至少代码中没看到。echo $query; //贴出结果看看
      

  6.   

    $query='select user_name from user where user_name="' . $username . '"';
    die($query);
    第一步,你确定没有别人也在使用,存在注入可能性,也就是你那个username变量里面包含注释加sql语句!
    第二步,你确定,同页面没有再查询数据库的地方,因为tchen13是你传过来的变量,也不该搞到字段上去
    第三步,输出query语句查看内容是否符合你的期待,看清了,楼上说几次了,你老说是传变量值,如果真是正确值那就不是这句错误,总能证明点东西的,自已动手试试,输出那句SQL语句!
      

  7.   

    select user_name from user where user_name='tchen13'
    这个就是我的语句,我就是想查询数据库中有没有tchen13这个记录,是不是如果没有就不能查找?那怎么判断存不存在一条记录?