使用PHP$\u会话参数的MySQL调用语法

使用PHP$\u会话参数的MySQL调用语法,php,mysql,session-variables,Php,Mysql,Session Variables,下面是我的项目代码 是的,我知道mysql已经被弃用了。 我希望与我的代码保持一致,而不是切换到mysqli或PDO。 有人看到我的语法在通话中哪里出错了吗?现在它输入了错误的条件语句,所以我知道它没有进入我的过程 session_start(); function Login($idb) { global $global_idx; if(isset($_SESSION['appRoleNo'])) { $db = @mysql_co

下面是我的项目代码

是的,我知道mysql已经被弃用了。 我希望与我的代码保持一致,而不是切换到mysqli或PDO。 有人看到我的语法在通话中哪里出错了吗?现在它输入了错误的条件语句,所以我知道它没有进入我的过程

session_start();

function Login($idb)
{
    global $global_idx;

    if(isset($_SESSION['appRoleNo']))
        {

            $db = @mysql_connect( HOST, USER, PASSWD );

            if( @mysql_select_db( DATABASE, $db ) )
                {
                    $z = "CALL login_ins_upd('".$_SESSION['tool_user']."', '".$_SESSION['fname']."', '".$_SESSION['lname']."', '".$SESSION['email']."', '".$_SESSION['appRoleName']."', $a)";
                    $y = mysql_query($z);

                if ($y === FALSE) {
                    die(mysql_error());
                    }
                    error_log($a);
                }
          }
}
“login_ins_upd”是我创建的数据库中的一个现有过程。
另外,$a是过程的输出(在mysql_error()之前,它总是空的)。

我刚刚发现,因为它是mysql,所以输出参数必须包含一个“@”符号。因此,输出参数为“@a”。

echo out
$z
;看起来对吗?如果返回false,您的
mysql\u error()
调用是否打印出任何内容?请不要使用
@
来抑制函数调用的错误消息-您应该检查返回值并处理它们。最后,您似乎没有在该函数范围内的任何地方初始化
$a
。$z按其应做的那样发出回声。我的错误日志没有从$y变量中提取任何内容。我设定$a=“”;在调用login_ins_upd之前,我在调用中将$a更新为“$a”以获取输出:调用login_ins_upd(“[userID]”,“[fname]”,“[lname]”,“'[email@...]“,”[role],”)方括号是我的内容,输出正确。调用的输出显示为“”,将在要返回的过程中更改。然而,这里仍然没有运气