【问题标题】:How do I properly insert data into both tables, with one of them having a foreign key to the other table?如何正确地将数据插入到两个表中,其中一个表具有另一个表的外键?
【发布时间】:2016-06-11 19:16:34
【问题描述】:

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

用户

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,我如何确保我正在使用该特定条目?

【问题讨论】:

    标签: php sql database postgresql


    【解决方案1】:

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

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

    更多信息:postgreSQL function for last inserted ID

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      相关资源
      最近更新 更多