当我在注册页面输入username,password,email,点击提交后,程序调用User.php类中的getByUsername($username)方法,
public static function getByUsername($username)
    {
        $u = new User();        $query = sprintf('SELECT USER_ID, PASSWORD, EMAIL_ADDR, IS_ACTIVE ' .
            'FROM %sUSER WHERE USERNAME = "%s"',
            DB_TBL_PREFIX,
            mysql_real_escape_string($username, $GLOBALS['DB']));
        $result = mysql_query($query, $GLOBALS['DB']);        if (mysql_num_rows($result))
        {
            $row = mysql_fetch_assoc($result);
            $u->username = $username;
            $u->password = $row['PASSWORD'];
            $u->emailAddr = $row['EMAIL_ADDR'];
            $u->isActive = $row['IS_ACTIVE'];
            $u->uid = $row['USER_ID'];
        }        mysql_free_result($result);
        return $u;
    }
程序执行到$query = sprintf('SELECT USER_ID, PASSWORD, EMAIL_ADDR, IS_ACTIVE ' .
            'FROM %sUSER WHERE USERNAME = "%s"',
            DB_TBL_PREFIX,
            mysql_real_escape_string($username, $GLOBALS['DB']));这句时,就停止了,并在浏览器上显示"连接被重置"
的字样.程序无法继续执行下去.
后来发现问题出在mysql_real_escape_string()函数上.在进行程序调试时,也是执行到查询时,就停止了.请大侠帮忙看看,这是怎么回事,怎么解决这个问题?经测试,数据库可以连通。
同样的代码,在别的机子上可以正常运行。   
mysql_real_escape_string()函数的正常执行与jdk有关吗?我的环境是:win7旗舰版,NetBeans6.9.1

解决方案 »

  1.   

    你将你的sql输出一下 看看是不是你想要的sql语句!~~
      

  2.   

      mysql_real_escape_string($username, $GLOBALS['DB']));
      $result = mysql_query($query, $GLOBALS['DB']);
    可以把这两句的后面那个连接资源参数去掉试试。
    或者把第二个参数 var_dump 出来看看是否资源被更改了。
      

  3.   

    大侠们,mysql_real_escape_string()这个函数在php5.3.0及以上版本能正常运行吗?
    如果你能正常运行的话,你的php用的是php5.3的哪个版本?