插入没有值

时间:2016-12-26 14:41:12

标签: php mysql sql

简介
我有一个名为 User 的数据库,里面有两个表:userinfousermeta。 (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

1 个答案:

答案 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

https://www.youtube.com/watch?v=DiVGuOXpl34

https://www.youtube.com/watch?v=FCtGbrou5DM