你好老乡程序员,PHP脚本停止
我已经提出,查找数据库,如果登录已经存在,然后返回true或false的功能,这里是这个函数的主体:
public static function loginExiste($login)
{
$cnx = new GestionBD("localhost", "fnak", "root", "");
$login = mysql_real_escape_string($login);
$ret = $cnx->execRequete("SELECT COUNT(*) FROM clients WHERE Client_Login = '".$login."'");
$col = mysql_fetch_array($ret);
echo 2;
if ($col[0] > 0)
{
echo 3;
return true;
}
else
{
echo 4;
return false;
}
}
,这里是我如何调用该函数:
echo 1;
if (!ExecRequete::loginExiste($_POST['login']))
{
echo 5;
/*
echo '<center><p style="color:red;">
Erreur: Login existe déjà
</p></center>';
exit();
*/
}
echo 6;
现在你可以看到,我身边有一些散落echo语句,看看如何execu正在流动。结果我得到的每一次是这样的:
如果登录存在:123 如果它不存在:124
从结果我看到剧本return语句后立即停止执行。通常它应该是这样的:
1236或12456
这个最糟糕的是,考试期间,发生在我身上,这让我很苦恼,因为它没有任何意义可言。调试失去了我很多时间,我无法完成其他容易的部分..
任何人都可以看到为什么这种奇怪的行为发生在这里?
我看不出任何明显错误与您的逻辑,但它可能是PHP发射没有被显示的错误。是否配置了error_reporting和display_errors/log_errors?顺便说一句,关于考试技巧的建议。如果你发现自己陷入某种困境,那就留下来,稍后再回来。如果你得到答案,他们将被标记,如果他们没有按顺序,这并不重要。 – GordonM 2012-01-28 18:17:13
yeh我已经添加了说明:error_reporting(E_ALL); ini_set('display_errors',true);在函数脚本和主函数中。我也把这个函数拿出来放在同一个脚本里,我试着用一个全局变量来输出这个值,但是执行永远不会超出这个函数的范围.. – 2012-01-29 16:25:32
总有[xdebug](http:// xdebug .org /)或[zend debugger](http://static.zend.com/topics/Zend-Debugger-Installation-Guide.pdf)来追踪这样的虚假问题。 – quickshiftin 2012-01-29 18:02:56