2013-02-17 207 views
1

我有一个基本的php表单,它可以让用户创建任务,它将保存mysql中的任务的详细信息。不过,我也希望将该人员的ID存储为创建作业的人员。 这是我的作业表: assignment_id | assignee_id | assign_name | assignment_created_by在mysql中插入php会话变量

assignment_created_by是引用users表中的user_id的外键。

当用户登录到应用程序时,我将user_id存储在会话变量中,如下所示: $ _SESSION ['id'] = $ person_id;

我想在作业表中插入$ _SESSION ['id']作为assignment_created_by。这是我的作业创建php代码:

if (isset($_POST['create'])) { 
require_once 'login.php'; 

    $OK = false; 
    // create database connection 
    $conn = new mysqli ($host, $user, $password, $database) or die("Connection Failed"); 
    // initialize prepared statement 
    $stmt = $conn->stmt_init(); 

    // create SQL 
    $sql = 'INSERT INTO assignments (assignment_name, assignee_id, assignment_created_by) 
      VALUES(?, ?, $_SESSION['id'])'; 
    if ($stmt->prepare($sql)) { 
    // bind parameters and execute statement 
    $stmt->bind_param('ss', $_POST['assignment_name'], $_POST['assignee_id']); 
    // execute and get number of affected rows 
    $stmt->execute(); 
    if ($stmt->affected_rows > 0) { 
     $OK = true; 
    } 
    } 
    // redirect if successful or display error 
    if ($OK) { 
    header('Location: assignment_confirmation.php'); 
    exit; 
    } else { 
    $error = $stmt->error; 
    } 
} 

它给出了此错误:解析错误:语法错误,意外的T_STRING。 我试图将会话变量保存在另一个变量中,但这也不起作用。有人可以请教我如何改正这一点?

回答

2

这应该为您解决它。注意周围的会议varaible

$sql = 'INSERT INTO assignments (assignment_name, assignee_id, assignment_created_by) 
      VALUES(?, ?, '.$_SESSION['id'].')'; 
+0

我的一个愚蠢的初学者错误,然后,非常感谢:) – elmify 2013-02-17 21:41:33

1

包括一个字符串数组的价值的报价和点要求它与大括号包围, 如

echo "The session ID is: {$_SESSION['id']}"; 

我觉得这是一个更清洁的替代迷失在引号和点。