简介
我有一个名为 User 的数据库,里面有两个表:userinfo
和usermeta
。
(usermeta应该是extented)现在usermeta
有两列user_meta_id,它们应匹配user_id
(两个主键)和user_info
(标准值为NULL)。在注册部分,我将所有需要的值添加到userinfo
表(密码等)。我想要的是触发主键user_meta_id
以在usermeta中设置id,但尚未设置user_info值。
所以我试着" INSERT INTO usermeta"但显然这不起作用。
我在userinfo表中添加信息的其他查询是
INSERT INTO userinfo (user_name, user_email, user_password, user_sname)
VALUES ('$fname','$email','$encPassword','$sname')
问题
如何触发user_meta_id
设置与user_id
相同的ID(两个查询几乎同时运行,想到:"所以他们设置了用户的相同ID#34; )
如果您对我的问题或背景"有任何疑问,我希望您理解我的问题。随便问:D
修改
用户php代码+ sql查询:
$registerQuery = "INSERT INTO userinfo (user_name, user_email, user_password, user_sname)
VALUES ('$fname','$email','$encPassword','$sname')";
$last_id = mysqli_insert_id($conn);
添加外键sql:
ALTER TABLE usermeta ADD FOREIGN KEY (user_meta_id) REFERENCES userinfo.user_id
答案 0 :(得分:0)
如果您正在使用
PDO:
$last_affected_id = $yourPdoConnectObject->lastInsertId();
http://php.net/manual/tr/pdo.lastinsertid.php
的mysqli:
$last_affected_id = mysqli_insert_id($connection);
或
$last_affected_id = $connection->insert_id;
http://php.net/manual/tr/mysqli.insert-id.php
此外,如果使用密钥连接两个表,其中一个应为主键,另一个应为外键
外键:
http://www.w3schools.com/sql/sql_foreignkey.asp