所以基本上我要做的是当我的网站用户在我们的注册页面上创建一个新帐户时,我想要用户表上新创建的行的主键(基本信息表,电子邮件,密码等)插入配置文件表中的新行(更多描述性信息,关于我,显示名称等)
我想在PHP中执行此操作,我们将不胜感激。
答案 0 :(得分:2)
如果您使用的是mysqli,请查看: http://www.php.net/manual/en/mysqli.insert-id.php
在第一次插入后获取ID,然后在下一次插入时使用它。
答案 1 :(得分:2)
如果“在php中”这样做并不是真正的要求,那么你可以使用MySQL内置的Trigger机制来进行更新。
触发器会在事件发生之后或之前发生某些事情(INSERT,UPDATE,DELETE)
所以你的触发器将是:
CREATE TRIGGER thistrigger AFTER INSERT
ON User FOR EACH ROW
UPDATE PROFILE SET "whatever"
触发器:http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
答案 2 :(得分:0)
我认为在MySQL中没有一种非常优雅的方式,主要是因为INSERT
没有返回任何内容。 PostgreSQL允许INSERT ... RETURNING
子句,但这是一个扩展。
也就是说,如果您在PHP中使用mysql_*
函数,则可以使用mysql_insert_id,这可能满足您的需求(即,如果您的主键是AUTO INCREMENT
整数)。
答案 3 :(得分:0)
如果您使用的是mysql数据库,您可以使用以下查询从php执行另一个查询调用:
“SELECT LAST_INSERT_ID();”
有关此处的更多信息:http://www.jpgtutorials.com/mysql-last_insert_id-function
这是特定于连接的。来自不同连接的并发插入不会影响当前连接。