$_SESSION
-varのデータ型の設定に問題があります。
次のコードを使用して、var を設定する必要があるかどうかを判断しています。
if(!isset($_SESSION['login']) || (isset($_SESSION['login']) && !is_int($_SESSION['login']))){
$_SESSION['login'] = "5";
settype($_SESSION['login'], "Integer");
}
上記のコードは完全に機能します。ただし、それ以外の場合は、私の Web ページで同じ 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()
それが再び機能しなくなった後...
これはどのように起こりますか?わかりません。値を他の値に設定していません...