当我在注册页面输入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
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
$result = mysql_query($query, $GLOBALS['DB']);
可以把这两句的后面那个连接资源参数去掉试试。
或者把第二个参数 var_dump 出来看看是否资源被更改了。
如果你能正常运行的话,你的php用的是php5.3的哪个版本?