2013-10-18 43 views
0

我在獲取MySql表的userid列中的值並將其存儲在會話中時出現問題。如何在註冊後爲新創建的用戶在會話變量中存儲用戶標識

下面是詳細的問題:

我有很多表的數據庫,但讓我們考慮2現在。

表名登錄

| userid | username | password 

表名person_details

比這
| firstname | lastname | dob 

其他,我有(考慮)2頁與2種形式(1在每一頁) ;

一個用於登錄和其他登錄後的細節。

我的person_details表的useridlogin表的外鍵。

我想是當用戶註冊時,提供usernamepassword應該與目前正在精細獨特(自動生成)userid保存在login表。*

現在的問題是在這部分;當用戶註冊時,他/她被導向person_details表格,並在填寫表格後點擊提交,數據應該保存到person_details,其具有與'登錄'表中相同的'用戶標識符'。

In order to do that I think i have to store the 'userid' in the session variable so that it can be used as a parameter while inserting the value to 'person_details' table but i am not able to pass that value. 

這裏是我的代碼:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "login")) { 
$insertSQL = sprintf("INSERT INTO secure_login (username, password) VALUES (%s, %s)", GetSQLValueString($_POST['username'], "text"), GetSQLValueString($_POST['password'], "text")); 

mysql_select_db($database_mydatabase, $mydatabase); 
$Result1 = mysql_query($insertSQL, $mydatabase) or die(mysql_error()); 
$obj = @mysql_fetch_object($Result1); 
$_SESSION['userID']=$obj->userid; 

我想這太,但沒有運氣

mysql_select_db($database_mydatabase, $mydatabase); 
$Result1 = mysql_query($insertSQL, $mydatabase) or die(mysql_error()); 
$_SESSION['userID']=$Result1->userid; 

這是試圖當我得到的錯誤:

Cannot add or update a child row: a foreign key constraint fails (`mydatabase`.`personaldetails`, CONSTRAINT `personaldetails_ibfk_2` FOREIGN KEY (`userid`) REFERENCES `secure_login` (`userid`) ON DELETE CASCADE ON UPDATE CASCADE) 

我沒有會話就試過了,這沒問題,dat a被保存到表person_details,自動生成userid

請讓我知道你是否需要代碼或任何其他信息。

編輯我得到了會話變量中的用戶ID,所以我的一半問題都解決了。現在我需要做的就是爲person_details設置相同的用戶標識。

P.S.當我在這裏發佈這個問題時,我希望得到一個答案,但我得到的只是一些訪問和一個爲我編輯的人(我認爲他非常享受,因此他編輯了我的一些評論作爲代碼),謝謝你的朋友。

回答

0

你的問題很難理解,你的編輯聲稱解決了一半的問題並沒有解決這個問題。這裏有幾個建議:

  1. 停止使用mysql_並開始使用mysqli_
  2. 我不相信你一定能夠成功地捕捉到任何物品,結果自刀片
  3. 您需要枚舉如果沒有按照它們在目標表中出現的順序插入,則將插入的值。

    INSERT INTO person_details(firstname, lastname, dob, userid) VALUES('firstname', 'lastname', 'dob', 'userid'); 
    
+0

首先,感謝您的回覆。其次,我想知道,你建議使用mysqli而不是mysql,只是爲了最佳實踐,否則會幫助我解決問題。並沒有捕獲任何使用插入,我用$ _SESSION ['userID'] = mysql_insert_id();從表中獲取用戶ID。除此之外,我正在使用正確的順序,因爲它工作正常,如果我跳過第二個表的用戶ID。我試圖儘可能地解釋它,但問題本身有點複雜。 –

+0

不推薦使用mysql擴展,所以你不應該在mysqli上使用它。在更高版本的MySQL中,它有字符串轉義問題和持續連接問題。 –

相關問題