我在从 MySql 表的userid
列中获取值并将其存储在会话中时遇到问题。
这是详细的问题:
我有一个包含许多表的数据库,但现在让我们考虑 2 个。
表名登录:
| userid | username | password
表名person_details:
| firstname | lastname | dob
除此之外,我有(考虑)2 页和 2 个表格(每页 1 个);
一个用于登录,另一个用于登录后的详细信息。
我的person_details
表的userid
是login
表的外键。
我想要的是当用户注册时,提供的username
和password
应该保存在login
表中,并带有一个唯一(自动生成的)userid
,该当前工作正常。
现在问题出在这一部分;当用户注册时,他/她被定向到person_details
表单,并且在填写表单后单击提交时,数据应保存到person_details
表中,具有与"登录"表中相同的"userID"。
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)
我在没有会话的情况下尝试了它,没关系,数据person_details
自动生成userid
保存到表中。
如果您不再需要代码或任何其他信息,请告诉我。
编辑我在会话变量中获得了用户ID,因此我的问题解决了一半。现在我需要做的就是为 person_details 设置相同的用户 ID。
附言当我在这里发布这个问题时,我期待得到答案,但我得到的只是一些访问和一个为我做一些编辑的人(我认为他非常喜欢,以至于他将我的一些评论编辑为代码),谢谢你朋友。
你的问题很难理解,你的编辑声称已经解决了一半的问题,并没有多大解决问题。以下是一些建议:
- 停止使用mysql_并开始使用mysqli_
- 我不相信您将能够成功捕获插入的任何项目
-
如果要插入的值未按它们在目标表中出现的确切顺序插入,则需要枚举这些值。
INSERT INTO person_details(firstname, lastname, dob, userid) VALUES('firstname', 'lastname', 'dob', 'userid');