严格的标准:只有变量应该通过引用传递
我的PHP脚本显示错误:
Strict Standards: Only variables should be passed by reference in C:....*.php on line 551
代码如下:
function trinity_premissions()
{
global $ACC_PDO, $WEB_PDO, $a_user, $db_translation;
$end = false;
$res = $WEB_PDO->prepare("SELECT acc_login, gmlevel FROM `accounts_more` WHERE UPPER(acc_login) = :acc");
/* 551 */$res->bindParam(':acc', strtoupper($a_user[$db_translation['login']]), PDO::PARAM_STR);
$res->execute();
if ($res->rowCount() == 1)
{
$s2 = $res->fetch(PDO::FETCH_ASSOC);
if ($s2['gmlevel']<>'')
{
return $s2['gmlevel'];
}
}
unset($res);
}
我不知道问题出在哪里。有人能帮帮我吗?
解决方案
使用bindValue(),因为bindParam()第二个参数是引用 如
$res->bindValue(':acc', strtoupper($a_user[$db_translation['login']]));
如果要使用bindParam,则必须存储语句 转换为一个变量,并将该变量作为参数传递。喜欢。
$test = strtoupper($a_user[$db_translation['login']];
$res->bindParam(':acc', $test), PDO::PARAM_STR);
相关文章