INSERT(PHP)后FOREIGN KEY不完成列

时间:2017-06-04 12:48:45

标签: php mysql

我有2张桌子。在第一个我有id_user(即主键),用户名,名称,密码,在第二个我有id_post(主键),发布,用户名,视图,id(引用id_user的外键)。 我使用查询后:

$query ="INSERT INTO posts (username,post,view) VALUES ('$username','$postare','$isprivate')";

它用NULL完成我的列id。我希望列id中包含进行查询的用户的id_user。不是NULL。

1 个答案:

答案 0 :(得分:1)

您需要查找值才能在数据中获取该值。因此,使用您的构造,查询将如下所示:

insert into posts (userid, post, view) 
    select u.userid, $postare, $isprivate
    from users u
    where u.username = '$username';

注意:

  • 不要将useridusername都存储在posts表中。仅将username存储在users表格中,并在需要时使用userid获取名称。
  • 不要通过直接在其中放置值来破坏查询字符串。学习使用参数化查询。
  • view是一个非常糟糕的列名,因为它是一个SQL关键字。