Php 如何正确地将数据插入两个表中,其中一个表的外键指向另一个表?

Php 如何正确地将数据插入两个表中,其中一个表的外键指向另一个表?,php,sql,database,postgresql,Php,Sql,Database,Postgresql,目前,我的数据库中有以下两个表: 使用者 授权书 id_network id_user - FK to id on table Users network 我想做的PHP代码是这样的。我知道这段代码容易受到SQL注入的攻击,我会修复它,但我还没有这么做 $query = "INSERT INTO users (id, pnome, unome, email, pass, level) VALUES (DEFAULT, '$pnome', '$unome', '$email', DEFAULT,

目前,我的数据库中有以下两个表:

使用者

授权书

id_network
id_user - FK to id on table Users
network
我想做的PHP代码是这样的。我知道这段代码容易受到SQL注入的攻击,我会修复它,但我还没有这么做

$query = "INSERT INTO users (id, pnome, unome, email, pass, level) VALUES (DEFAULT, '$pnome', '$unome', '$email', DEFAULT, DEFAULT)";
$result = pg_query($dbconn, $query);

$query = "INSERT INTO authorizations (id_network, id_user, network) VALUES ('$id', ?????, 'Facebook')";
$result = pg_query($dbconn, $query);
我的问题是,我应该用什么来代替授权表插入的问号?
由于Users表中有
id\u user
外键,我希望使用刚刚插入用户的条目中的
id
,如何确保我使用的是该特定条目?

在postgreSQL中,没有上次插入id的概念。您可以使用
curval()
lastval()
。您还可以使用返回
id
的查询:

插入到“用户”中(
`fname`、`lname`、`email`--。。。
)价值观(
“史密斯”、“约翰”。。。
)返回'id';
更多信息:

$query = "INSERT INTO users (id, pnome, unome, email, pass, level) VALUES (DEFAULT, '$pnome', '$unome', '$email', DEFAULT, DEFAULT)";
$result = pg_query($dbconn, $query);

$query = "INSERT INTO authorizations (id_network, id_user, network) VALUES ('$id', ?????, 'Facebook')";
$result = pg_query($dbconn, $query);