使用$ _SESSION数据通过PHP

时间:2018-12-05 17:38:25

标签: php session mysqli sql-update

我已经使用PHP创建了登录系统,该系统使用SQL从数据库中的记录中检索用户名和密码。用户名然后存储为$ _SESSION ['username']。我知道这很好用,因为它在提示时将用户名回显到页面上。

我现在需要将客户数据添加到我的数据库中,这是使用html表单来完成的。我想将其添加到与$ _SESSION ['username']相匹配的特定记录中,但是无论我在尝试什么,我似乎都无法使其正常工作!

这是我最近的尝试:

if(array_key_exists('username', $_SESSION)) {

    if(!$_POST['submit']){
        echo "Please complete all fields";
    }
    else {

        $firstname = 'John';
        $surname = 'Brown';
        $postcode = 'LN1 1LP';
        $addressline1 = 'Brown Street';
        $addressline2 = 'London';

        // Enter customer details into the chosen_activities table of the database  

        $sql = "UPDATE customers SET firstname = '$firstname', surname = '$surname', addressline1 = '$addressline1',
                addressline2 = '$addressline2' WHERE username = $_SESSION['username']";

        if (mysqli_query($connect, $sql)) {
            echo "Data Creation Success";
        }
        else {
            echo "Something went wrong, please try again";
        }
    }

出于测试查询的目的,我删除了表单输入变量,而是将其替换为字符串。

此特定查询以及先前的尝试已报告了此

  

错误“解析错误:语法错误,意外的”(T_ENCAPSED_AND_WHITESPACE),在C:\ xampp #########中期望'-'或标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING) ##########在第21行”。

任何人都可以提供建议,或者为我指出我要寻找的正确方向吗?我搜索了类似的问题,但找不到我想要的东西。

谢谢

1 个答案:

答案 0 :(得分:-1)

PHP将$ _SESSION ['username']作为字符串值而不是变量。 您的查询应如下所示:

$sql = "UPDATE customers SET firstname = '$firstname', surname = '$surname', addressline1 = '$addressline1',
        addressline2 = '$addressline2' WHERE username = " . $_SESSION['username'];