2013-02-17 151 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']}"; 

我覺得這是一個更清潔的替代迷失在引號和點。