2016-10-28 28 views
0

私は、ユーザーが一時的にデータを保存して後で完了できるようにするフォームを作成しています。一時的にフォームデータをSQLに保存

私の問題は、データベースで使用されているいくつかのセッション変数があり、そのための列がないことです。 SQLが実行され、列が見つからないときに終了します。

私が達成しようとしていることを実装するためのより良い方法はありますか?

foreach ($SESSION as $key => $value) { 
    $userInput1 = "UPDATE userform SET $key=:value WHERE username=:username AND email=:email" ; 
    $userInput2 = $dbusage->prepare($userInput1); 
    $userInput2->execute(array(
    ':value' => $value, 
    ':username' => $_SESSION['username'], 
    ':email' => $_SESSION['email'] 
    )); 
}       
if($userInput2->errno) 
{ 
    echo "An Error Occured".$userInput2->error; 
}else{ 
    header('Location: profile.php'); 
    $userInput2->close(); 
    exit; 
} 
+1

を行います。 – Barmar

答えて

0

saved_sessionをテーブルに追加します。次に、$_SESSION変数全体をシリアル化し、そこに格納します。彼らが戻ってくるとき

$stmt = $dbusage->prepare("UPDATE userform SET saved_session = :session WHERE username=:username AND email=:email"); 
$stmt->execute(array(
    ':session' => serialize($_SESSION); 
    ':username' => $_SESSION['username'], 
    ':email' => $_SESSION['email'] 
)); 

はその後、あなたはあなただけのデータベースに ``シリアル化($ _ SESSION)格納することができ、それを外に出て

$_SESSION = array_merge(unserialize($row['saved_session']), $_SESSION); 
+0

クイックアンサーで@Barmarに感謝します。すべてのレベルのポイントに非常に右。達成したいことを達成しました。あなたは上司です。 – isnata

+0

問題を解決した場合は、回答を受け入れることを忘れないでください – Barmar

関連する問題