我在设置$_SESSION
-var 的数据类型时遇到了一些问题。
我正在使用以下代码来确定是否需要设置 var:
if(!isset($_SESSION['login']) || (isset($_SESSION['login']) && !is_int($_SESSION['login']))){
$_SESSION['login'] = "5";
settype($_SESSION['login'], "Integer");
}
上面的代码完美运行。但是,在我的网页上,我使用相同的 var 进行查询,并且由于某种原因,这些查询导致我上面的代码运行每个页面加载。
例如,使用以下代码:
// lots of code
$STH = $DBH->prepare("SELECT something FROM somethingelse WHERE id=:id");
$STH->bindParam(":id",$_SESSION['login']);
exit();
此页面顶部的代码始终运行(也是如此is_int($_SESSION['login'])
)false
。但是,此代码不会:
// lots of code
$STH = $DBH->prepare("SELECT something FROM somethingelse WHERE id=:id");
$STH->bindParam(":id",$_SESSION['login'], PDO::PARAM_INT);
exit();
但是在$STH->execute()
它再次停止工作之后......
这是怎么发生的?我不明白,我没有将值设置为其他任何东西......