0

以下函数应该接受PHP session_id并更新它,否则用户将在 5 分钟内注销:

function update_session_id( $session_id = "" )
{
    $stmt = "UPDATE session SET start=NOW() WHERE id='$session_id';";
    $query = mysql_query( $stmt )
        or die( mysql_error() );

    if( $query )
    {
        return true;
    }
    return false;
}

出于某种原因,即使我正在使用,它也会PHP返回我,这似乎根本没有删除那些斜线。这就是我的查询不起作用的原因......调用该函数的代码非常简单:"\"p9bb7t9gmchtvr6scr8hseufm6\""stripslashes()

else if( strcmp( $action, "query" ) == 0 )
    {
        $session_id = stripslashes( $_POST['session_id'] );
        $data = getCustomer();
        update_session_id( $session_id );
        echo json_encode( $session_id );
    }

但我不知道为什么我的字符串上有那些额外的斜线。有什么想法吗? 更新一个查询示例:

"UPDATE session SET start=NOW() WHERE id='\"p9bb7t9gmchtvr6scr8hseufm6\"';"
4

1 回答 1

1

生成语句的正确代码是:

$stmt = sprintf("UPDATE session SET start=NOW() WHERE id='%s'", 
    mysql_real_escape_string($session_id)
);

如果您在结果查询中看到双引号,则表示双引号已经存在

也可以看看:PDO

于 2012-12-13T02:03:35.477 回答