严格的标准:只有变量应该通过引用传递 [英] Strict Standards: Only variables should be passed by reference

查看:321
本文介绍了严格的标准:只有变量应该通过引用传递的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的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);

这篇关于严格的标准:只有变量应该通过引用传递的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆