【发布时间】:2015-02-24 07:54:36
【问题描述】:
PHP
$SCode=$_POST['SCode'];
$ECode=$_POST['ECode'];
for($p=$SCode;$p<$ECode;$p++)
{
$dbResult= $dbHandle->query("
SELECT Code
FROM Mashaghel
Where Code=" . $p . "");
if(!isset($Mashaghel[0]["Code"]) || empty($Mashaghel[0]["Code"]))
{
$errorCode.=$p."،";
}
}
echo $errorCode."does not existed!";
我用
运行这个$_POST['SCode']='010100100101002084';
$_POST['ECode']='010100100101002087';
但这不起作用并说错误Maximum execution time of 60 seconds exceeded 而010100100101002084 和010100100101002087 之间的区别只有3。
为什么 for 循环会无限循环!?
请帮帮我
【问题讨论】:
-
不应该是
$Mashaghel是$dbResult? -
您意识到像
010100100101002084这样的值太大而无法表示为 32 位有符号整数(猜测您正在运行 32 位 PHP);再加上你在将它们转换为数字时会丢失前导零 -
@MarkBaker 对于对于整数来说太大的数字,它不会切换到浮点数吗?
-
为什么不直接使用
WHERE Code BETWEEN $SCode AND $ECode并循环遍历结果? -
是的,它会做那个切换,但是你可能会进入浮动不准确的领域