2016-06-11 27 views
1

目前,我已經在我的數據庫有這2個表:如何正確地將數據插入到兩個表中,其中一個表中有一個外鍵用於另一個表?

用戶

id - Primary Key 
fname 
lname 
email 
password 
level 

授權

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_user外鍵,並且我希望使用剛剛插入到Users中的條目中的id,所以我如何確保使用該特定條目?

回答

1

在postgreSQL中,沒有最後一個插入ID的概念。您可以使用curval()lastval()。你也可以使用一個返回id查詢:

INSERT INTO `users` (
    `fname`, `lname`, `email` -- ... 
) VALUES (
    'Smith', 'John', -- ... 
) RETURNING `id`; 

更多信息:postgreSQL function for last inserted ID

相關問題